home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
dev
/
lang
/
SmallEiffel.lha
/
SmallEiffel
/
bin_c
/
pretty11.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-12-22
|
119KB
|
6,432 lines
/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79) --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
-- http://www.loria.fr/SmallEiffel --
*/
#include "pretty.h"
/*No:E_DEBUG.compound*/
T0*oBC11run_control=NULL;
/*No:E_DEBUG.start_position*/
T0* r204add_comment(T204* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r32count(((T32*)((((T64*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else {/*AT*//*[IF*/
if((/*(IRF4.6count*/r32count(((T32*)((((T64*)a1))->_list/*4*/)))/*)*/)==(1)){
R=(T0*)C;
}
else{
{T209*n=malloc(sizeof(*n));
*n=M209;
r209make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r204to_runnable(T204* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((C)->_current_type/*16*/)==((void*)(NULL))){
C->_current_type=a1;
/*[IF*/
if(r54debug_check((T54*)(oBC11run_control))){
/*[IF*/
if(((C)->_compound/*12*/)!=((void*)(NULL))){
C->_compound=r200to_runnable((T200*)((C)->_compound/*12*/),a1);
}
/*FI]*/
}
/*FI]*/
R=(T0*)C;
}
else{
{T204*n=malloc(sizeof(*n));
*n=M204;
r204make(n,(C)->_start_position/*4*/,(C)->_list/*8*/,(C)->_compound/*12*/);
R=(T0*)n;
}
R=r204to_runnable(((T204*)R),a1);
}
/*FI]*/
return R;
}
/*No:E_DEBUG.current_type*/
/*No:E_DEBUG.end_mark_comment*/
void r204make(T204* C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_list=a2;
C->_compound=a3;
}
void r204pretty_print(T204* C){
T2 _i=0;
r310keyword((T310*)(oBC11fmt),((T0*)ms204_2670a));
r310level_incr((T310*)(oBC11fmt));
/*[IF*/
if(((C)->_list/*8*/)!=((void*)(NULL))){
r310put_character((T310*)(oBC11fmt),'\50');
_i=((T205*)((C)->_list/*8*/))->_lower/*16*/;
while (!((_i)>(((T205*)((C)->_list/*8*/))->_upper/*12*/))) {
r154pretty_print((T154*)(r205item((T205*)((C)->_list/*8*/),_i)));
_i=(_i)+(1);
/*[IF*/
if((_i)<=(((T205*)((C)->_list/*8*/))->_upper/*12*/)){
r310put_character((T310*)(oBC11fmt),'\54');
}
/*FI]*/
}
r310put_character((T310*)(oBC11fmt),'\51');
}
/*FI]*/
r310level_decr((T310*)(oBC11fmt));
/*[IF*/
if(((C)->_compound/*12*/)!=((void*)(NULL))){
r200pretty_print((T200*)((C)->_compound/*12*/));
}
/*FI]*/
r310indent((T310*)(oBC11fmt));
r310keyword((T310*)(oBC11fmt),((T0*)ms204_1520));
/*[IF*/
if(r310print_end_debug((T310*)(oBC11fmt))){
r310put_end((T310*)(oBC11fmt),((T0*)ms204_2670));
}
/*FI]*/
}
/*No:E_DEBUG.list*/
/*No:CST_ATT_INTEGER.base_class*/
/*No:CST_ATT_INTEGER.value_mem*/
T0* r197start_position(T197* C){
T0* R=NULL;
R=X65start_position(/*(IRF4.6first_name*/r67item(((T67*)((C)->_names/*8*/)),1)/*)*/);
return R;
}
T6 r197is_merge_with(T197* C,T0* a1,T0* a2){
T6 R=0;
R=1;
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(X75result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X75result_type(a1))==((void*)(NULL)))){
R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X75arguments(a1)))){
/*[IF*/
{/*AT*/R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
R=X62is_a_in((C)->_result_type/*20*/,X75result_type(a1),a2);
}
/*FI]*/
/*[IF*/
if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
R=r171is_a_in((T171*)(/*(IRF4.1arguments*/NULL/*)*/),X75arguments(a1),a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
R=1;
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC37explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T38*)((T38*)(oBC37positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
R=X62is_a_in(X75result_type(a1),(C)->_result_type/*20*/,a2);
}
/*FI]*/
/*[IF*/
if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
R=r171is_a_in((T171*)(X75arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
r197merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:CST_ATT_INTEGER.first_name*/
/*No:CST_ATT_INTEGER.em1*/
/*No:CST_ATT_INTEGER.header_comment*/
void r197pretty_print_profile(T197* C){
r197pretty_print_names(C);
/*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(2);
/*]*/
/*[IRF3.1pretty_print_arguments*//*]*/
/*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(3);
/*]*/
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
r310put_string((T310*)(oBC11fmt),((T0*)ms75_186));
X62pretty_print((C)->_result_type/*20*/);
}
/*FI]*/
}
/*No:CST_ATT_INTEGER.names*/
/*No:CST_ATT_INTEGER.result_type*/
/*No:CST_ATT_INTEGER.code_require*/
/*No:CST_ATT_INTEGER.make_e_feature*/
void r197add_into(T197* C,T0* a1){
T0* _fn=NULL;
T2 _i=0;
C->_base_class=r39base_class((T39*)(X65start_position(r67item((T67*)((C)->_names/*8*/),1))));
_i=1;
while (!((_i)>(r67count((T67*)((C)->_names/*8*/))))) {
_fn=r67item((T67*)((C)->_names/*8*/),_i);
/*[IF*/
if(r74has(((T74*)a1),X65to_key(_fn))){
_fn=/*X75first_name*/((T0*)/*(IRF4.6first_name*/r67item(((T67*)(((T183*)(r74at(((T74*)a1),X65to_key(_fn))))->_names/*8*/)),1)/*)*/);
r37add_position(X65start_position(_fn));
r37add_position(X65start_position(r67item((T67*)((C)->_names/*8*/),_i)));
r37error((T37*)(oBC11eh),((T0*)ms75_41905));
/*[IRF3.6append*/{T0* b1=X65to_string(_fn);
r7append((T7*)(oBC37explanation),b1);
}/*]*/
r37error((T37*)(oBC11eh),((T0*)ms12_47));
}
else{
r74put(((T74*)a1),(T0*)C,X65to_key(_fn));
}
/*FI]*/
_i=(_i)+(1);
}
}
T6 r197can_hide(T197* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(X75result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X75result_type(a1))==((void*)(NULL)))){
r37add_position(X75start_position(a1));
r197error(r197start_position(C),((T0*)ms75_64647));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X75arguments(a1)))){
/*[IF*/
{/*AT*/r37add_position(X75start_position(a1));
r197error(r197start_position(C),((T0*)ms75_83182));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
/*[IF*/
if(!(X62is_a_in((C)->_result_type/*20*/,X75result_type(a1),a2))){
/*[IRF3.6append*/{T0* b1=((T0*)ms75_54285);
r7append((T7*)(oBC37explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X62run_time_mark((((T313*)a2))->_current_type/*0*/);
r7append((T7*)(oBC37explanation),b1);
}/*]*/
r37error((T37*)(oBC11eh),((T0*)ms12_47));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
/*[IF*/
if(R){
r197merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:CST_ATT_INTEGER.ensure_assertion*/
T0* r197try_to_undefine(T197* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
r37add_position(X65start_position(a1));
_fn2=r67feature_name((T67*)((C)->_names/*8*/),X65to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X65undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC37explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T38*)((T38*)(oBC37positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r197try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
/*X269set_clients*//*[IRF3.3set_clients*/((((T272*)(((T272*)R))))->_clients)=((C)->_clients/*16*/);
/*]*/
r197merge_header_comments(C,R);
}
else{
r41fatal_undefine(((T41*)a2),a1);
}
/*FI]*/
return R;
}
/*No:CST_ATT_INTEGER.is_deferred*/
T0*oBC75assertion_collector=NULL;
/*No:CST_ATT_INTEGER.set_clients*/
/*No:CST_ATT_INTEGER.value*/
T0*oBC11small_eiffel=NULL;
/*No:CST_ATT_INTEGER.nb_errors*/
T0* r197to_run_feature(T197* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X62run_class(a1);
R=r313at(((T313*)_rc),a2);
if(NULL!=(R))switch(((T0*)R)->id) {
case 325:
break;
default:
R=NULL;
};/*[IF*/
if((R)==((void*)(NULL))){
{T325*n=malloc(sizeof(*n));
*n=M325;
r325make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
void r197merge_header_comments(T197* C,T0* a1){
/*[IF*/
if(((T42*)(oBC11small_eiffel))->_short_flag/*0*/){
/*[IF*/
if(((C)->_header_comment/*12*/)==((void*)(NULL))){
C->_header_comment=/*X75header_comment*/((T0*)(((T183*)a1))->_header_comment/*12*/);
}
else if((/*X75header_comment*/((T0*)(((T183*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X75set_header_comment(a1,(C)->_header_comment/*12*/);
}
/*FI]*/
}
/*FI]*/
}
/*No:CST_ATT_INTEGER.arguments*/
T0*oBC75header_comment_memory=NULL;
/*No:CST_ATT_INTEGER.require_assertion*/
T0*oBC75require_collector=NULL;
/*No:CST_ATT_INTEGER.pretty_print_arguments*/
T0* r197try_to_undefine_aux(T197* C,T0* a1,T0* a2){
T0* R=NULL;
r37add_position(r197start_position(C));
r197error(X65start_position(a1),((T0*)ms185_99414));
r41fatal_undefine(((T41*)a2),a1);
return R;
}
/*No:CST_ATT_INTEGER.fz_dot*/
void r197error(T0* a1,T0* a2){
r37add_position(a1);
r37error((T37*)(oBC11eh),a2);
}
void r197make(T197* C,T0* a1,T0* a2,T0* a3){
/*[IRF3.3make_e_feature*/((((T197*)(C)))->_names)=(a1);
/*]*/
C->_result_type=a2;
C->_value_mem=a3;
}
void r197pretty_print_names(T197* C){
T2 _i=0;
_i=1;
X65declaration_pretty_print(r67item((T67*)((C)->_names/*8*/),_i));
_i=(_i)+(1);
while (!((_i)>(r67count((T67*)((C)->_names/*8*/))))) {
r310put_string((T310*)(oBC11fmt),((T0*)ms75_158));
X65declaration_pretty_print(r67item((T67*)((C)->_names/*8*/),_i));
_i=(_i)+(1);
}
}
void r197pretty_print(T197* C){
r197pretty_print_profile(C);
r197pretty_tail(C);
r310put_character((T310*)(oBC11fmt),'\73');
/*[IF*/
if(((C)->_header_comment/*12*/)!=((void*)(NULL))){
/*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(2);
/*]*/
r310indent((T310*)(oBC11fmt));
/*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(1);
/*]*/
r64pretty_print((T64*)((C)->_header_comment/*12*/));
}
else{
/*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(1);
/*]*/
}
/*FI]*/
}
void r197collect_for(T2 a1){
T0* _er=NULL;
/*[IF*/
if((a1)==(1)){
_er=/*(IRF4.1require_assertion*/NULL/*)*/;
/*[IF*/
if((_er)!=((void*)(NULL))){
/*[IF*/
if(!(r332fast_has((T332*)(oBC75require_collector),_er))){
r332add_last((T332*)(oBC75require_collector),_er);
}
/*FI]*/
}
/*FI]*/
}
else{
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
}
/*No:CST_ATT_INTEGER.set_header_comment*/
void r197pretty_tail(T197* C){
r310put_string((T310*)(oBC11fmt),((T0*)ms184_1176));
/*[IRF3.6pretty_print*/{T158* C1=(T158*)(/*(IRF4.3value*/(C)->_value_mem/*24*//*)*/);
r310put_string((T310*)(oBC11fmt),/*(IRF4.6to_string*/r2to_string(((T2)((C1)->_value/*8*/)))/*)*/);
}/*]*/
}
/*No:CST_ATT_INTEGER.clients*/
/*No:EIFFEL_PARSER.last_instruction*/
/*No:EIFFEL_PARSER.fz_frozen*/
T0* r51a_alias(T51* C){
T0* R=NULL;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_2685))){
/*[IF*/
if(r51a_manifest_string(C)){
R=((T154*)((C)->_last_manifest_string/*145*/))->_to_string/*8*/;
}
else{
r51fcp(C,((T0*)ms51_63264));
}
/*FI]*/
}
/*FI]*/
return R;
}
T6 r51a_type_formal_generic(T51* C){
T6 R=0;
T2 _rank=0;
T0* _cn=NULL;
T0* _fga=NULL;
/*[IF*/
if(((C)->_formal_generic_list/*37*/)!=((void*)(NULL))){
_rank=1;
while (!((R)||((_rank)>(/*(IRF4.6count*/(((T264*)(((T76*)((C)->_formal_generic_list/*37*/))->_list/*4*/)))->_upper/*8*//*)*/)))) {
_fga=/*(IRF4.6item*/r264item(((T264*)(((T76*)((C)->_formal_generic_list/*37*/))->_list/*4*/)),_rank)/*)*/;
/*[IF*/
if(r51a_keyword(C,((T49*)((((T263*)_fga))->_name/*0*/))->_to_string/*0*/)){
{T49*n=malloc(sizeof(*n));
*n=M49;
r49make(n,((T49*)((((T263*)_fga))->_name/*0*/))->_to_string/*0*/,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
_cn=(T0*)n;
}
{T265*n=malloc(sizeof(*n));
*n=M265;
r265make(n,_cn,_rank);
C->_last_type_formal_generic=(T0*)n;
}
R=1;
}
/*FI]*/
_rank=(_rank)+(1);
}
}
/*FI]*/
return R;
}
void r51err_exp(T0* a1,T0* a2){
T0* _msg=NULL;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,0);
_msg=(T0*)n;
}
r7append(((T7*)_msg),((T0*)ms51_48949));
r7append(((T7*)_msg),a2);
r7append(((T7*)_msg),((T0*)ms51_10120));
r37add_position(a1);
/*[IRF3.6fatal_error*/{T0* b1=_msg;
r37fatal_error((T37*)(oBC11eh),b1);
}/*]*/
}
/*No:EIFFEL_PARSER.fz_then*/
/*No:EIFFEL_PARSER.formal_generic_list*/
/*No:EIFFEL_PARSER.fz_indexing*/
T6 r51a_rename_pair(T51* C){
T6 R=0;
T0* _rename_pair=NULL;
T0* _name1=NULL;
/*[IF*/
if(r51a_feature_name(C)){
_name1=(C)->_last_feature_name/*105*/;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_430))){
/*[IF*/
if(r51a_feature_name(C)){
R=1;
{T70*n=malloc(sizeof(*n));
*n=M70;
r70make(n,_name1,(C)->_last_feature_name/*105*/);
_rename_pair=(T0*)n;
}
r60add_rename((T60*)((C)->_last_parent/*149*/),_rename_pair);
}
else{
r51fcp(C,((T0*)ms51_121210));
}
/*FI]*/
}
else{
/*[IRF3.6go_back*/{T51* C1=C;
T0* b1=X65start_position(_name1);
r51go_back_at(C1,/*(IRF4.6line*/((((T39*)b1))->_mem_line_column/*4*/)/(1000)/*)*/,/*(IRF4.6column*/((((T39*)b1))->_mem_line_column/*4*/)%(1000)/*)*/);
}/*]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.last_feature_name*/
/*No:EIFFEL_PARSER.fz_when*/
/*No:EIFFEL_PARSER.last_parent*/
T0* r51last_result(T51* C){
T0* R=NULL;
T0* _sp=NULL;
_sp=r92start_position((T92*)(oBC51tmp_name));
/*[IF*/
if((C)->_inside_function/*29*/){
/*[IF*/
if((C)->_inside_once_function/*33*/){
{T138*n=malloc(sizeof(*n));
*n=M138;
/*[IRF3.3make*/((((T138*)(n)))->_start_position)=(_sp);
/*]*/
R=(T0*)n;
}
}
else{
{T139*n=malloc(sizeof(*n));
*n=M139;
/*[IRF3.3make*/((((T139*)(n)))->_start_position)=(_sp);
/*]*/
R=(T0*)n;
}
}
/*FI]*/
}
else{
r37add_position(_sp);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_116820);
r37fatal_error((T37*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.us_integer*/
void r51a_function_call(T51* C){
T0* _implicit_current=NULL;
T0* _sfn=NULL;
_sfn=r92to_simple_feature_name((T92*)(oBC51tmp_name));
{T177*n=malloc(sizeof(*n));
*n=M177;
/*[IRF3.3make*/((((T177*)(n)))->_start_position)=((((T131*)_sfn))->_start_position/*8*/);
/*]*/
_implicit_current=(T0*)n;
}
r51a_r10(C,0,_implicit_current,_sfn,r51a_actuals(C));
}
T6 r51a_real_constant(T51* C){
T6 R=0;
T2 _c=0;
T2 _l=0;
_l=(C)->_line/*16*/;
_c=(C)->_column/*12*/;
/*[IF*/
if(r51skip1(C,'\53')){
/*[IF*/
if(r51a_real(C)){
r39set_line_column((T39*)(((T157*)((C)->_last_real_constant/*153*/))->_start_position/*4*/),_l,_c);
R=1;
}
else{
r51go_back_at(C,_l,_c);
}
/*FI]*/
}
else if(r51skip1(C,'\55')){
/*[IF*/
if(r51a_real(C)){
r39set_line_column((T39*)(((T157*)((C)->_last_real_constant/*153*/))->_start_position/*4*/),_l,_c);
/*[IRF3.5unary_minus*/r7add_first(((T7*)(((T157*)((C)->_last_real_constant/*153*/))->_to_string/*8*/)),'\55');
/*]*/
R=1;
}
else{
r51go_back_at(C,_l,_c);
}
/*FI]*/
}
else if(r51a_real(C)){
R=1;
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.fz_feature*/
T6 r51a_assignment_or_call(T51* C){
T6 R=0;
/*[IF*/
if((r51skip1(C,'\50'))&&(r51a_expression(C))){
R=1;
/*[IF*/
if(r51skip1(C,'\51')){
r51a_r10(C,1,(C)->_last_expression/*97*/,NULL,NULL);
}
else{
r51fcp(C,((T0*)ms51_11245));
}
/*FI]*/
}
else if(r51a_precursor(C,1)){
R=1;
}
else if(r51a_identifier(C)){
R=1;
/*[IF*/
if(r51skip2(C,'\72','\75')){
r51a_assignment_aux(C,1);
}
else if(r51skip2(C,'\77','\75')){
r51a_assignment_aux(C,0);
}
else if((((r51a_current(C))||(r51a_result(C)))||(r51a_local_variable(C)))||(r51a_argument(C))){
r51a_r10(C,1,(C)->_last_expression/*97*/,NULL,NULL);
}
else{
r51a_procedure_call(C);
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.fz_debug*/
/*No:EIFFEL_PARSER.us_native_array*/
T6 r51a_strip(T51* C){
T6 R=0;
T0* _sp=NULL;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_2885))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
/*[IF*/
if(r51skip1(C,'\50')){
C->_ok=r51a_feature_name_list(C);
{T130*n=malloc(sizeof(*n));
*n=M130;
r130make(n,_sp,(C)->_last_feature_name_list/*109*/);
C->_last_expression=(T0*)n;
}
/*[IF*/
if(!(r51skip1(C,'\51'))){
r51fcp(C,((T0*)ms51_80379));
}
/*FI]*/
R=1;
}
else{
r51fcp(C,((T0*)ms51_65660));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.fz_loop*/
T0*oBC51faof=NULL;
/*No:EIFFEL_PARSER.us_pointer*/
void r51a_indexing(T51* C){
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_11000))){
while (!(!(r51a_index_clause(C)))) {
C->_ok=r51skip1(C,'\73');
}
}
/*FI]*/
}
/*No:EIFFEL_PARSER.make*/
T0* r51a_actuals(T51* C){
T0* R=NULL;
T0* _remainder=NULL;
T0* _first_one=NULL;
/*[IF*/
if(r51skip1(C,'\50')){
while (!(!(r51a_actual(C)))) {
/*[IF*/
if((_first_one)==((void*)(NULL))){
_first_one=(C)->_last_expression/*97*/;
}
else{
/*[IF*/
if((_remainder)==((void*)(NULL))){
{T134*n=malloc(sizeof(*n));
*n=M134;
r134with_capacity(n,4);
_remainder=(T0*)n;
}
}
/*FI]*/
X134add_last(_remainder,(C)->_last_expression/*97*/);
}
/*FI]*/
/*[IF*/
if((!(r51skip1(C,'\54')))&&(((C)->_cc/*24*/)!=('\51'))){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_9410);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
}
/*[IF*/
if((_first_one)==((void*)(NULL))){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_57660);
r51warning(r51current_position(C1),b1);
}/*]*/
}
else{
{T132*n=malloc(sizeof(*n));
*n=M132;
r132make_n(n,_first_one,_remainder);
R=(T0*)n;
}
}
/*FI]*/
/*[IF*/
if(!(r51skip1(C,'\51'))){
r51fcp(C,((T0*)ms51_65695));
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r51a_clients(T51* C){
T0* R=NULL;
T2 _state=0;
T0* _list=NULL;
T0* _sp=NULL;
/*[IF*/
if(r51skip1(C,'\173')){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
while (!((_state)>(3))) {
{int z1=_state;
if((0==z1)){
/*[IF*/
if(r51a_base_class_name(C)){
{T179*n=malloc(sizeof(*n));
*n=M179;
/*[IRF3.3make_1*/((((T179*)(n)))->_first)=((C)->_last_class_name/*89*/);
/*]*/
_list=(T0*)n;
}
_state=2;
}
else if(r51skip1(C,'\175')){
_state=4;
}
else if(((C)->_cc/*24*/)==('\54')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_48195);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\54');
}
else{
_state=3;
}
/*FI]*/
}
else
if((1==z1)){
/*[IF*/
if(r51a_base_class_name(C)){
r179add_last(((T179*)_list),(C)->_last_class_name/*89*/);
_state=2;
}
else if(((C)->_cc/*24*/)==('\54')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_48195);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\54');
}
else if(((C)->_cc/*24*/)==('\175')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_26923);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\175');
_state=4;
}
else{
_state=3;
}
/*FI]*/
}
else
if((2==z1)){
/*[IF*/
if(r51skip1(C,'\54')){
_state=1;
}
else if(r51skip1(C,'\175')){
_state=4;
}
else if(r51a_base_class_name(C)){
r51warning(((T49*)((C)->_last_class_name/*89*/))->_start_position/*4*/,((T0*)ms51_9410));
r179add_last(((T179*)_list),(C)->_last_class_name/*89*/);
}
else{
_state=3;
}
/*FI]*/
}
else{r51fcp(C,((T0*)ms51_20247));
_state=4;
}}
}
{T83*n=malloc(sizeof(*n));
*n=M83;
r83make(n,_sp,_list);
R=(T0*)n;
}
}
else{
{T83*n=malloc(sizeof(*n));
*n=M83;
/*[IRF3.1omitted*//*]*/
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T0*oBC11echo=NULL;
/*No:EIFFEL_PARSER.us_implies*/
T0*oBC51tmp_name=NULL;
/*No:EIFFEL_PARSER.fz_c_inlinewithcurrent*/
void r51a_feature_clause(T51* C){
T0* _comment=NULL;
T0* _clients=NULL;
T0* _feature_clause=NULL;
_clients=r51a_clients(C);
_comment=r51get_comments(C);
/*[IRF3.3clear*/((((T81*)((T81*)(oBC51faof))))->_upper)=(-(1));
/*]*/
while (!(!(r51a_feature_declaration(C)))) {
C->_ok=r51skip1(C,'\73');
/*[IF*/
if(((C)->_last_feature_declaration/*101*/)!=((void*)(NULL))){
r81add_last((T81*)(oBC51faof),(C)->_last_feature_declaration/*101*/);
X75set_header_comment((C)->_last_feature_declaration/*101*/,r51get_comments(C));
}
/*FI]*/
}
/*[IF*/
if(!(r81empty((T81*)(oBC51faof)))){
{T78*n=malloc(sizeof(*n));
*n=M78;
r78make(n,_clients,_comment,r81twin((T81*)(oBC51faof)));
_feature_clause=(T0*)n;
}
r41add_feature_clause((T41*)((C)->_last_base_class/*65*/),_feature_clause);
}
else if((_comment)!=((void*)(NULL))){
{T78*n=malloc(sizeof(*n));
*n=M78;
r78make(n,_clients,_comment,NULL);
_feature_clause=(T0*)n;
}
r41add_feature_clause((T41*)((C)->_last_base_class/*65*/),_feature_clause);
}
/*FI]*/
C->_last_keyword=NULL;
}
/*No:EIFFEL_PARSER.us_precursor*/
/*No:EIFFEL_PARSER.fz_inherit*/
/*No:EIFFEL_PARSER.fz_variant*/
/*No:EIFFEL_PARSER.fz_inspect*/
/*No:EIFFEL_PARSER.last_character_constant*/
/*No:EIFFEL_PARSER.last_class_type*/
/*No:EIFFEL_PARSER.last_class_name*/
/*No:EIFFEL_PARSER.last_ascii_code*/
/*No:EIFFEL_PARSER.line*/
/*No:EIFFEL_PARSER.fz_require*/
/*No:EIFFEL_PARSER.fz_invariant*/
T6 r51a_integer(T51* C){
T6 R=0;
T2 _value=0;
T2 _state=0;
/*[IF*/
if(r3is_digit((C)->_cc/*24*/)){
R=1;
C->_start_line=(C)->_line/*16*/;
C->_start_column=(C)->_column/*12*/;
_value=r3value((C)->_cc/*24*/);
while (!((_state)>(7))) {
r51next_char(C);
{int z1=_state;
if((0==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
_value=((_value)*(10))+(r3value((C)->_cc/*24*/));
_state=1;
}
else
if((95==z2)){
_state=4;
}
else{_state=8;
}}
}
else
if((1==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
_value=((_value)*(10))+(r3value((C)->_cc/*24*/));
_state=2;
}
else
if((95==z2)){
_state=4;
}
else{_state=8;
}}
}
else
if((2==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
_value=((_value)*(10))+(r3value((C)->_cc/*24*/));
_state=3;
}
else
if((95==z2)){
_state=4;
}
else{_state=8;
}}
}
else
if((3==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
_value=((_value)*(10))+(r3value((C)->_cc/*24*/));
}
else
if((95==z2)){
r51fcp(C,((T0*)ms51_98851));
}
else{_state=8;
}}
}
else
if((4==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
_value=((_value)*(10))+(r3value((C)->_cc/*24*/));
_state=5;
}
else{r51fcp(C,((T0*)ms51_98851));
}}
}
else
if((5==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
_value=((_value)*(10))+(r3value((C)->_cc/*24*/));
_state=6;
}
else{r51fcp(C,((T0*)ms51_98851));
}}
}
else
if((6==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
_value=((_value)*(10))+(r3value((C)->_cc/*24*/));
_state=7;
}
else{r51fcp(C,((T0*)ms51_98851));
}}
}
else {{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
r51fcp(C,((T0*)ms51_98851));
}
else
if((95==z2)){
_state=4;
}
else{_state=8;
}}
}}
}
/*[IF*/
if(r3is_letter((C)->_cc/*24*/)){
r51fcp(C,((T0*)ms51_31689));
}
/*FI]*/
r51skip_comments(C);
{T158*n=malloc(sizeof(*n));
*n=M158;
r158make(n,_value,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
C->_last_integer_constant=(T0*)n;
}
}
/*FI]*/
return R;
}
T0* r51current_position(T51* C){
T0* R=NULL;
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_line/*16*/,(C)->_column/*12*/);
R=(T0*)n;
}
return R;
}
T0*oBC51forbidden_class=NULL;
T6 r51a_manifest_string(T51* C){
T6 R=0;
T2 _state=0;
/*[IF*/
if(((C)->_cc/*24*/)==('\42')){
R=1;
{T154*n=malloc(sizeof(*n));
*n=M154;
r154make(n,r51pos((C)->_line/*16*/,(C)->_column/*12*/));
C->_last_manifest_string=(T0*)n;
}
while (!((_state)>(3))) {
r51next_char(C);
{int z1=_state;
if((0==z1)){
{int z2=(C)->_cc/*24*/;
if((10==z2)){
r51fcp(C,((T0*)ms51_91143));
}
else
if((34==z2)){
_state=4;
}
else
if((37==z2)){
_state=1;
}
else{/*[IRF3.5add*/r7extend(((T7*)(((T154*)((C)->_last_manifest_string/*145*/))->_to_string/*8*/)),(C)->_cc/*24*/);
/*]*/
}}
}
else
if((1==z1)){
_state=0;
{int z2=(C)->_cc/*24*/;
if((10==z2)){
_state=3;
}
else
if((65==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\100');
}
else
if((66==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\10');
}
else
if((67==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\136');
}
else
if((68==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\44');
}
else
if((70==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\14');
}
else
if((72==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\134');
}
else
if((76==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\176');
}
else
if((78==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\n');
}
else
if((81==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\140');
}
else
if((82==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\15');
}
else
if((83==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\43');
}
else
if((84==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\11');
}
else
if((85==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\0');
}
else
if((86==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\174');
}
else
if((37==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\45');
}
else
if((39==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\47');
}
else
if((34==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\42');
}
else
if((40==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\133');
}
else
if((41==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\135');
}
else
if((60==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\173');
}
else
if((62==z2)){
r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\175');
}
else
if((47==z2)){
r51a_ascii_code(C);
r154add_ascii((T154*)((C)->_last_manifest_string/*145*/),((T3)((C)->_last_ascii_code/*61*/)));
}
else
if((9==z2)||(32==z2)){
_state=2;
}
else{r51fcp(C,((T0*)ms51_45084a));
_state=0;
}}
}
else
if((2==z1)){
{int z2=(C)->_cc/*24*/;
if((10==z2)){
_state=3;
}
else
if((9==z2)||(32==z2)){
}
else{r51fcp(C,((T0*)ms51_192660));
}}
}
else{{int z2=(C)->_cc/*24*/;
if((9==z2)||(32==z2)){
}
else
if((37==z2)){
r154break_line((T154*)((C)->_last_manifest_string/*145*/));
_state=0;
}
else
if((10==z2)){
r51fcp(C,((T0*)ms51_91143));
_state=0;
}
else{r51fcp(C,((T0*)ms51_204786));
_state=0;
}}
}}
}
r51next_char(C);
r51skip_comments(C);
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.fz_jvm_invokestatic*/
void r51a_class_declaration(T51* C){
T6 _drop_comments_save=0;
T0* _al=NULL;
T0* _hc=NULL;
T0* _sp=NULL;
r51a_indexing(C);
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_10664))){
r41set_is_deferred((T41*)((C)->_last_base_class/*65*/));
}
/*FI]*/
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_10840))){
r41set_is_expanded((T41*)((C)->_last_base_class/*65*/));
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_10664))){
r41set_is_deferred((T41*)((C)->_last_base_class/*65*/));
}
/*FI]*/
}
/*FI]*/
/*[IRF3.3set_heading_comment1*/((((T41*)((T41*)((C)->_last_base_class/*65*/))))->_heading_comment1)=(r51get_comments(C));
/*]*/
/*[IF*/
if(!(r51a_keyword(C,((T0*)ms12_2745)))){
r51fcp(C,((T0*)ms51_42300));
}
/*FI]*/
r51a_base_class_name1(C);
r51a_formal_generic_list(C);
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_10928))){
/*[IF*/
if(r51a_manifest_string(C)){
/*[IRF3.3set_obsolete_type_string*/((((T41*)((T41*)((C)->_last_base_class/*65*/))))->_obsolete_type_string)=((C)->_last_manifest_string/*145*/);
/*]*/
}
else{
r51fcp(C,((T0*)ms51_125396));
}
/*FI]*/
}
/*FI]*/
/*[IRF3.3set_heading_comment2*/((((T41*)((T41*)((C)->_last_base_class/*65*/))))->_heading_comment2)=(r51get_comments(C));
/*]*/
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_9527))){
r51a_parent_list(C,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),r51get_comments(C));
}
/*FI]*/
while (!(!(r51a_keyword(C,((T0*)ms12_11376))))) {
r51a_creation_clause(C,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
}
while (!(!(r51a_keyword(C,((T0*)ms12_8785))))) {
r51a_feature_clause(C);
}
_drop_comments_save=(C)->_drop_comments/*4*/;
C->_drop_comments=0;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_14427))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
_hc=r51get_comments(C);
_al=r51a_assertion(C);
r41set_invariant((T41*)((C)->_last_base_class/*65*/),_sp,_hc,_al);
}
/*FI]*/
/*[IF*/
if((r51a_keyword(C,((T0*)ms12_951)))||(((C)->_last_keyword/*113*/)==((void*)(((T0*)ms12_951))))){
/*[IF*/
if(((C)->_cc/*24*/)==('\73')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms12_41475);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\73');
}
/*FI]*/
/*[IRF3.3set_end_comment*/((((T41*)((T41*)((C)->_last_base_class/*65*/))))->_end_comment)=(r51get_comments(C));
/*]*/
/*[IF*/
if(((C)->_cc/*24*/)!=('\0')){
r51fcp(C,((T0*)ms51_29463));
}
/*FI]*/
}
else{
r51fcp(C,((T0*)ms51_117540));
}
/*FI]*/
C->_drop_comments=_drop_comments_save;
}
/*No:EIFFEL_PARSER.last_base_class*/
void r51a_after_a_dot(T51* C,T6 a1,T0* a2){
T0* _eal=NULL;
T0* _sfn=NULL;
/*[IF*/
if(r51a_identifier(C)){
/*[IF*/
if(((r51a_result(C))||(r51a_void(C)))||(r51a_current(C))){
r37add_position(X89start_position((C)->_last_expression/*97*/));
r37error((T37*)(oBC11eh),((T0*)ms51_83714));
}
/*FI]*/
_sfn=r92to_simple_feature_name((T92*)(oBC51tmp_name));
_eal=r51a_actuals(C);
r51a_r10(C,a1,a2,_sfn,_eal);
}
else{
r51fcp(C,((T0*)ms51_63584));
}
/*FI]*/
}
/*No:EIFFEL_PARSER.nb_errors*/
T6 r51a_actual(T51* C){
T6 R=0;
/*[IF*/
if(r51skip1(C,'\44')){
/*[IF*/
if(r51a_identifier(C)){
/*[IF*/
if(((r51a_result(C))||(r51a_void(C)))||(r51a_current(C))){
r37add_position(X89start_position((C)->_last_expression/*97*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_98482);
r37fatal_error((T37*)(oBC11eh),b1);
}/*]*/
}
else{
{T143*n=malloc(sizeof(*n));
*n=M143;
/*[IRF3.3make*/((((T143*)(n)))->_feature_name)=(r92to_simple_feature_name((T92*)(oBC51tmp_name)));
/*]*/
C->_last_expression=(T0*)n;
}
R=1;
}
/*FI]*/
}
else{
r51fcp(C,((T0*)ms51_98482));
}
/*FI]*/
}
else if(r51a_expression(C)){
R=1;
}
/*FI]*/
return R;
}
T6 r51a_infix(T51* C){
T6 R=0;
T0* _sp=NULL;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_2785))){
R=1;
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
/*[IF*/
if(((C)->_cc/*24*/)==('\42')){
r51next_char(C);
}
else{
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_85196);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
/*[IF*/
if(r51a_binary(C,_sp)){
C->_last_infix=(C)->_last_binary/*73*/;
}
else if(r51a_free_operator(C)){
C->_last_infix=r92to_infix_name(_sp);
}
else{
r51fcp(C,((T0*)ms51_53911));
}
/*FI]*/
/*[IF*/
if(!(r51skip1(C,'\42'))){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_38352a);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.us_plus*/
T0*oBC11parser_buffer=NULL;
void r51a_parent_list(T51* C,T0* a1,T0* a2){
T0* _list=NULL;
while (!(!(r51a_parent(C)))) {
/*[IF*/
if((_list)==((void*)(NULL))){
_list=se_ma61(1,
(C)->_last_parent/*149*/);
}
else{
r61add_last(((T61*)_list),(C)->_last_parent/*149*/);
}
/*FI]*/
C->_ok=r51skip1(C,'\73');
/*[IRF3.3set_comment*/((((T60*)((T60*)((C)->_last_parent/*149*/))))->_comment)=(r51get_comments(C));
/*]*/
}
/*[IF*/
if(((a2)!=((void*)(NULL)))||((_list)!=((void*)(NULL)))){
/*[IF*/
if((_list)==((void*)(NULL))){
/*[IF*/
if((((T41*)((C)->_last_base_class/*65*/))->_heading_comment2/*32*/)==((void*)(NULL))){
/*[IRF3.3set_heading_comment2*/((((T41*)((T41*)((C)->_last_base_class/*65*/))))->_heading_comment2)=(a2);
/*]*/
}
else{
r64append((T64*)(((T41*)((C)->_last_base_class/*65*/))->_heading_comment2/*32*/),a2);
}
/*FI]*/
}
else{
r41set_parent_list((T41*)((C)->_last_base_class/*65*/),a1,a2,_list);
}
/*FI]*/
}
/*FI]*/
}
/*No:EIFFEL_PARSER.fz_check*/
/*No:EIFFEL_PARSER.us_muls*/
/*No:EIFFEL_PARSER.cc*/
void r51prev_char(T51* C){
/*[IF*/
if(((C)->_column/*12*/)>(1)){
C->_column=((C)->_column/*12*/)-(1);
C->_cc=/*(IRF4.6item*/(((T7*)((C)->_current_line/*20*/))->_storage/*0*/)[((C)->_column/*12*/)-(1)]/*)*/;
}
else{
/*[IF*/
if(((C)->_line/*16*/)>(1)){
C->_line=((C)->_line/*16*/)-(1);
C->_current_line=r52item((C)->_line/*16*/);
C->_column=(((T7*)((C)->_current_line/*20*/))->_count/*4*/)+(1);
C->_cc='\n';
}
else{
C->_column=0;
C->_cc='\0';
}
/*FI]*/
}
/*FI]*/
}
T6 r51a_inspect(T51* C){
T6 R=0;
T0* _ec=NULL;
T0* _i=NULL;
T0* _spec=NULL;
T0* _sp=NULL;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_9590))){
R=1;
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
/*[IF*/
if(r51a_expression(C)){
C->_last_expression=X89add_comment((C)->_last_expression/*97*/,r51get_comments(C));
}
else{
r51fcp(C,((T0*)ms51_82621));
}
/*FI]*/
{T216*n=malloc(sizeof(*n));
*n=M216;
r216make(n,_sp,(C)->_last_expression/*97*/);
_i=(T0*)n;
}
while (!(!(r51a_when_part(C,_i)))) {
}
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_1740))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_spec=(T0*)n;
}
_ec=r51a_compound2(C,((T0*)ms51_33180),((T0*)ms12_951));
r216set_else_compound(((T216*)_i),_spec,_ec);
}
else if(!(r51a_keyword(C,((T0*)ms12_951)))){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_76932);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
C->_last_instruction=_i;
}
/*FI]*/
return R;
}
T6 r51a_current(T51* C){
T6 R=0;
/*[IF*/
if(r92is_current()){
{T141*n=malloc(sizeof(*n));
*n=M141;
/*[IRF3.3make*/((((T141*)(n)))->_start_position)=(r92start_position((T92*)(oBC51tmp_name)));
/*]*/
C->_last_expression=(T0*)n;
}
R=1;
}
/*FI]*/
return R;
}
void r51a_rename_list(T51* C){
while (!(!(r51a_rename_pair(C)))) {
C->_ok=r51skip1(C,'\54');
}
}
/*No:EIFFEL_PARSER.us_or_else*/
/*No:EIFFEL_PARSER.case_insensitive*/
/*No:EIFFEL_PARSER.last_comments*/
void r51next_char(T51* C){
/*[IF*/
if(((C)->_column/*12*/)<(((T7*)((C)->_current_line/*20*/))->_count/*4*/)){
C->_column=((C)->_column/*12*/)+(1);
C->_cc=/*(IRF4.6item*/(((T7*)((C)->_current_line/*20*/))->_storage/*0*/)[((C)->_column/*12*/)-(1)]/*)*/;
}
else if(((C)->_column/*12*/)==(((T7*)((C)->_current_line/*20*/))->_count/*4*/)){
C->_column=((C)->_column/*12*/)+(1);
C->_cc='\n';
}
else if(((C)->_line/*16*/)==(((T52*)(oBC11parser_buffer))->_count/*4*/)){
C->_cc='\0';
}
else{
C->_column=1;
C->_line=((C)->_line/*16*/)+(1);
C->_current_line=r52item((C)->_line/*16*/);
/*[IF*/
if((((T7*)((C)->_current_line/*20*/))->_count/*4*/)==(0)){
C->_cc='\n';
}
else{
C->_cc=/*(IRF4.5first*//*(IRF4.6item*/(((T7*)((C)->_current_line/*20*/))->_storage/*0*/)[(1)-(1)]/*)*//*)*/;
}
/*FI]*/
}
/*FI]*/
}
/*No:EIFFEL_PARSER.us_slash*/
T6 r51a_unary(T51* C){
T6 R=0;
/*[IF*/
if(r51a_keyword(C,((T0*)ms13_1029))){
{T125*n=malloc(sizeof(*n));
*n=M125;
r125make(n,((T0*)ms13_1029),r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
C->_last_prefix=(T0*)n;
}
R=1;
}
else if(r51skip1(C,'\53')){
{T125*n=malloc(sizeof(*n));
*n=M125;
r125make(n,((T0*)ms13_44),r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
C->_last_prefix=(T0*)n;
}
R=1;
}
else if(r51skip1(C,'\55')){
{T125*n=malloc(sizeof(*n));
*n=M125;
r125make(n,((T0*)ms13_46),r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
C->_last_prefix=(T0*)n;
}
R=1;
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.drop_comments*/
/*No:EIFFEL_PARSER.ok*/
T0* r51analyse_class(T51* C,T0* a1){
T0* R=NULL;
T0* _path=NULL;
T2 _old_nbw=0;
T2 _old_nbe=0;
_path=((T52*)(oBC11parser_buffer))->_path/*0*/;
/*[IF*/
if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)>(0)){
/*[IRF3.6append*/{T0* b1=((T0*)ms51_63808);
r7append((T7*)(oBC37explanation),b1);
}/*]*/
r37print_as_fatal_error((T37*)(oBC11eh));
}
/*FI]*/
r33put_integer((T33*)(oBC11echo),(/*(IRF4.9base_class_count*/((T44*)(oBC42base_class_dictionary))->_count/*32*//*)*/)+(1));
r33put_character((T33*)(oBC11echo),'\11');
r33put_string((T33*)(oBC11echo),_path);
r33put_character((T33*)(oBC11echo),'\n');
_old_nbe=/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/;
_old_nbw=/*(IRF4.9nb_warnings*/((T37*)(oBC11eh))->_nb_warnings/*0*//*)*/;
C->_is_running=1;
C->_inside_function=0;
C->_inside_once_function=0;
C->_in_ensure=0;
C->_last_comments=NULL;
C->_line=1;
C->_column=1;
C->_current_line=r52item((C)->_line/*16*/);
/*[IF*/
if((((T7*)((C)->_current_line/*20*/))->_count/*4*/)==(0)){
C->_cc='\n';
}
else{
C->_cc=/*(IRF4.5first*//*(IRF4.6item*/(((T7*)((C)->_current_line/*20*/))->_storage/*0*/)[(1)-(1)]/*)*//*)*/;
}
/*FI]*/
{T41*n=malloc(sizeof(*n));
*n=M41;
r41make(n);
C->_last_base_class=(T0*)n;
}
r51skip_comments(C);
r51a_class_declaration(C);
C->_is_running=0;
/*[IRF3.3unset_is_ready*/((((T52*)((T52*)(oBC11parser_buffer))))->_path)=(NULL);
/*]*/
R=(C)->_last_base_class/*65*/;
/*[IF*/
if(((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)-(_old_nbe))>(0)){
/*[IRF3.2show_nb_errors*/r51show_nb(/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/,((T0*)ms51_6567));
/*]*/
r33w_put_string(((T0*)ms51_10068));
r33w_put_string(_path);
r33w_put_string(((T0*)ms51_5467));
R=NULL;
}
else if(((/*(IRF4.9nb_warnings*/((T37*)(oBC11eh))->_nb_warnings/*0*//*)*/)-(_old_nbw))>(0)){
/*[IRF3.2show_nb_warnings*/r51show_nb(/*(IRF4.9nb_warnings*/((T37*)(oBC11eh))->_nb_warnings/*0*//*)*/,((T0*)ms51_8021));
/*]*/
}
/*FI]*/
/*[IF*/
if((R)!=((void*)(NULL))){
r42add_class((T42*)(oBC11small_eiffel),R);
/*[IF*/
if(((a1)!=((void*)(NULL)))&&(((((T49*)a1))->_to_string/*0*/)!=((void*)(((T49*)((((T41*)R))->_name/*24*/))->_to_string/*0*/)))){
r37add_position((((T49*)a1))->_start_position/*4*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms12_3810);
r7append((T7*)(oBC37explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=_path;
r7append((T7*)(oBC37explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms51_35397);
r7append((T7*)(oBC37explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(((T49*)a1))->_to_string/*0*/;
r7append((T7*)(oBC37explanation),b1);
}/*]*/
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_166);
r37fatal_error((T37*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
r41get_started(((T41*)R));
}
/*FI]*/
return R;
}
void r51skip_comments(T51* C){
T2 _state=0;
T0* _sp=NULL;
while (!((_state)==(2))) {
{int z1=_state;
if((0==z1)){
{int z2=(C)->_cc/*24*/;
if(((9<=z2)&&(z2<=10))||(32==z2)){
r51next_char(C);
}
else
if((45==z2)){
r51next_char(C);
_state=1;
}
else{_state=2;
}}
}
else {{int z2=(C)->_cc/*24*/;
if((45==z2)){
/*[IF*/
if((C)->_drop_comments/*4*/){
}
else{
/*[IF*/
if(((C)->_last_comments/*25*/)==((void*)(NULL))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_line/*16*/,((C)->_column/*12*/)-(1));
_sp=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
r51next_char(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC51lcs))))->_count)=(0);
/*]*/
while (!(((C)->_cc/*24*/)==('\n'))) {
r7extend((T7*)(oBC51lcs),(C)->_cc/*24*/);
r51next_char(C);
}
/*[IF*/
if((C)->_drop_comments/*4*/){
}
else{
/*[IF*/
if(((C)->_last_comments/*25*/)==((void*)(NULL))){
{T64*n=malloc(sizeof(*n));
*n=M64;
r64make(n,_sp,se_ma32(1,
r7twin((T7*)(oBC51lcs))));
C->_last_comments=(T0*)n;
}
}
else{
/*[IRF3.5add_last*/r32add_last(((T32*)(((T64*)((C)->_last_comments/*25*/))->_list/*4*/)),r7twin((T7*)(oBC51lcs)));
/*]*/
}
/*FI]*/
}
/*FI]*/
_state=0;
}
else{r51prev_char(C);
_state=2;
}}
}}
}
}
T6 r51a_local_variable(T51* C){
T6 R=0;
T2 _rank=0;
/*[IF*/
if(((C)->_local_vars/*53*/)!=((void*)(NULL))){
_rank=r162rank_of((T162*)((C)->_local_vars/*53*/),r92to_string((T92*)(oBC51tmp_name)));
/*[IF*/
if((_rank)>(0)){
C->_last_expression=r92to_local_name2((T92*)(oBC51tmp_name),(C)->_local_vars/*53*/,_rank);
R=1;
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.start_line*/
T6 r51a_retry(T51* C){
T6 R=0;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_2905))){
/*[IF*/
if(!((C)->_in_rescue/*45*/)){
r51error(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),((T0*)ms51_115380));
}
/*FI]*/
{T215*n=malloc(sizeof(*n));
*n=M215;
/*[IRF3.3make*/((((T215*)(n)))->_start_position)=(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
/*]*/
C->_last_instruction=(T0*)n;
}
R=1;
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.arguments*/
T6 r51a_e10(T51* C){
T6 R=0;
/*[IF*/
if(r51a_strip(C)){
R=1;
}
else if(r51skip1(C,'\50')){
R=1;
/*[IF*/
if(r51a_expression(C)){
/*[IF*/
if(r51skip1(C,'\51')){
r51a_r10(C,0,(C)->_last_expression/*97*/,NULL,NULL);
}
else{
r51fcp(C,((T0*)ms51_40743));
}
/*FI]*/
}
else{
r51fcp(C,((T0*)ms51_29020));
}
/*FI]*/
}
else if(r51a_manifest_constant(C)){
C->_last_expression=(C)->_last_manifest_constant/*141*/;
R=1;
/*[IF*/
if(r51skip1unless2(C,'\56','\56')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_129072);
r51warning(r51current_position(C1),b1);
}/*]*/
r51a_after_a_dot(C,0,(C)->_last_expression/*97*/);
}
/*FI]*/
}
else if(r51a_precursor(C,0)){
R=1;
}
else if(r51a_identifier(C)){
R=1;
/*[IF*/
if(((((r51a_result(C))||(r51a_current(C)))||(r51a_void(C)))||(r51a_local_variable(C)))||(r51a_argument(C))){
r51a_r10(C,0,(C)->_last_expression/*97*/,NULL,NULL);
}
else{
r51a_function_call(C);
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.fz_select*/
T6 r51a_conditional(T51* C){
T6 R=0;
T0* _ifthenelse=NULL;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_420))){
R=1;
{T206*n=malloc(sizeof(*n));
*n=M206;
/*[IRF3.3make*/((((T206*)(n)))->_start_position)=(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
/*]*/
_ifthenelse=(T0*)n;
}
r51a_then_part_list(C,_ifthenelse);
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_1740))){
/*[IRF3.3set_else_compound*/((((T206*)(((T206*)_ifthenelse))))->_else_compound)=(r51a_compound2(C,((T0*)ms51_13644),((T0*)ms12_951)));
/*]*/
}
else{
/*[IF*/
if(!(r51a_keyword(C,((T0*)ms12_951)))){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_29240);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
C->_last_instruction=_ifthenelse;
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.is_running*/
void r51a_r10(T51* C,T6 a1,T0* a2,T0* a3,T0* a4){
/*[IF*/
if(r51skip1unless2(C,'\56','\56')){
r51a_after_a_dot(C,a1,r51to_call(a2,a3,a4));
}
else{
/*[IF*/
if(a1){
C->_last_instruction=r51to_proc_call(C,a2,a3,a4);
C->_last_expression=NULL;
}
else{
C->_last_expression=r51to_call(a2,a3,a4);
C->_last_instruction=NULL;
}
/*FI]*/
}
/*FI]*/
}
/*No:EIFFEL_PARSER.last_prefix*/
T0*oBC51tmp_string=NULL;
/*No:EIFFEL_PARSER.last_infix*/
/*No:EIFFEL_PARSER.fz_export*/
T6 r51a_tag_mark(T51* C){
T6 R=0;
/*[IF*/
if(r51a_identifier(C)){
/*[IF*/
if(r51skip1unless2(C,'\72','\75')){
R=1;
C->_last_tag_mark=r92to_tag_name((T92*)(oBC51tmp_name));
}
else{
C->_last_tag_mark=NULL;
r51go_back_at(C,((T92*)(oBC51tmp_name))->_li/*4*/,((T92*)(oBC51tmp_name))->_co/*8*/);
}
/*FI]*/
}
else{
C->_last_tag_mark=NULL;
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.last_feature_name_list*/
/*No:EIFFEL_PARSER.last_manifest_constant*/
/*No:EIFFEL_PARSER.fz_local*/
/*No:EIFFEL_PARSER.fz_jvm_invokevirtual*/
/*No:EIFFEL_PARSER.current_class*/
/*No:EIFFEL_PARSER.last_tag_mark*/
void r51a_base_class_name1(T51* C){
T0* _ccn=NULL;
T6 _do_warning=0;
T2 _state=0;
_ccn=((T41*)((C)->_last_base_class/*65*/))->_name/*24*/;
/*[IF*/
if(r3is_letter((C)->_cc/*24*/)){
r39set_line_column((T39*)((((T49*)_ccn))->_start_position/*4*/),(C)->_line/*16*/,(C)->_column/*12*/);
r92initialize((T92*)(oBC51tmp_name),(C)->_line/*16*/,(C)->_column/*12*/);
/*[IF*/
if((((unsigned)((C)->_cc/*24*/))>=((unsigned)('a')))){
_do_warning=1;
C->_cc=r3to_upper((C)->_cc/*24*/);
}
/*FI]*/
/*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
r7extend((T7*)(oBC92tmp_string),b1);
}/*]*/
while (!((_state)>(0))) {
r51next_char(C);
{int z1=(C)->_cc/*24*/;
if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)){
/*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
r7extend((T7*)(oBC92tmp_string),b1);
}/*]*/
}
else
if(((97<=z1)&&(z1<=122))){
_do_warning=1;
/*[IRF3.6extend*/{T3 b1=r3to_upper((C)->_cc/*24*/);
r7extend((T7*)(oBC92tmp_string),b1);
}/*]*/
}
else{_state=1;
}}
}
r51skip_comments(C);
/*[IF*/
if(r92isa_keyword()){
r37add_position((((T49*)_ccn))->_start_position/*4*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_71470);
r37fatal_error((T37*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
/*[IF*/
if(_do_warning){
r51warning((((T49*)_ccn))->_start_position/*4*/,((T0*)ms51_116415));
}
/*FI]*/
r49identify(((T49*)_ccn),r92to_string((T92*)(oBC51tmp_name)));
}
else{
r51fcp(C,((T0*)ms51_71470));
}
/*FI]*/
/*[IF*/
if(r32fast_has((T32*)(oBC51forbidden_class),(((T49*)_ccn))->_to_string/*0*/)){
r37add_position((((T49*)_ccn))->_start_position/*4*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_44356);
r37fatal_error((T37*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
}
/*No:EIFFEL_PARSER.fz_01*/
/*No:EIFFEL_PARSER.fz_03*/
/*No:EIFFEL_PARSER.fz_iinaiv*/
T6 r51a_keyword(T51* C,T0* a1){
T6 R=0;
T2 _keyword_count=0;
T2 _i=0;
_keyword_count=(((T7*)a1))->_count/*4*/;
C->_start_line=(C)->_line/*16*/;
C->_start_column=(C)->_column/*12*/;
while (!(((_i)==(_keyword_count))||(!(r3same_as((C)->_cc/*24*/,/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[((_i)+(1))-(1)]/*)*/))))) {
_i=(_i)+(1);
r51next_char(C);
}
/*[IF*/
if((_i)==(_keyword_count)){
{int z1=(C)->_cc/*24*/;
if(((9<=z1)&&(z1<=10))||(32==z1)||(45==z1)){
R=1;
C->_last_keyword=a1;
r51skip_comments(C);
}
else
if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)||((97<=z1)&&(z1<=122))){
while (!((_i)==(0))) {
r51prev_char(C);
_i=(_i)-(1);
}
}
else{R=1;
C->_last_keyword=a1;
}}
}
else{
while (!((_i)==(0))) {
r51prev_char(C);
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.fz_until*/
/*No:EIFFEL_PARSER.last_binary*/
T0* r51a_routine_body(T51* C){
T0* R=NULL;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_10664))){
r41set_is_deferred((T41*)((C)->_last_base_class/*65*/));
R=r182to_deferred_routine((T182*)(oBC51tmp_feature));
}
else if(r51a_keyword(C,((T0*)ms12_11448))){
R=r51a_external(C);
}
else if(r51a_keyword(C,((T0*)ms12_428))){
/*[IRF3.3set_routine_body*/((((T182*)((T182*)(oBC51tmp_feature))))->_routine_body)=(r51a_compound1(C));
/*]*/
R=r182to_procedure_or_function((T182*)(oBC51tmp_feature));
}
else if(r51a_keyword(C,((T0*)ms12_1724a))){
C->_inside_once_function=1;
/*[IRF3.3set_routine_body*/((((T182*)((T182*)(oBC51tmp_feature))))->_routine_body)=(r51a_compound1(C));
/*]*/
R=r182to_once_routine((T182*)(oBC51tmp_feature));
}
else{
r51fcp(C,((T0*)ms51_34276));
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.last_expression*/
/*No:EIFFEL_PARSER.fz_59*/
T6 r51a_void(T51* C){
T6 R=0;
/*[IF*/
if(r92is_void()){
C->_last_expression=r92to_e_void((T92*)(oBC51tmp_name));
R=1;
}
/*FI]*/
return R;
}
T6 r51a_class_type(T51* C){
T6 R=0;
T0* _generic_list=NULL;
T0* _base_class_name=NULL;
T2 _state=0;
/*[IF*/
if(r51a_base_type(C)){
C->_last_class_type=(C)->_last_base_type/*69*/;
R=1;
}
else if(r51a_base_class_name(C)){
R=1;
_base_class_name=(C)->_last_class_name/*89*/;
while (!((_state)>(2))) {
{int z1=_state;
if((0==z1)){
/*[IF*/
if(r51skip1(C,'\133')){
_state=1;
}
else{
{T257*n=malloc(sizeof(*n));
*n=M257;
/*[IRF3.3make*/((((T257*)(n)))->_base_class_name)=(_base_class_name);
/*]*/
C->_last_class_type=(T0*)n;
}
_state=3;
}
/*FI]*/
}
else
if((1==z1)){
/*[IF*/
if(r51a_type(C)){
/*[IF*/
if((_generic_list)==((void*)(NULL))){
_generic_list=se_ma245(1,
(C)->_last_type/*157*/);
}
else{
r245add_last(((T245*)_generic_list),(C)->_last_type/*157*/);
}
/*FI]*/
_state=2;
}
else if(((C)->_cc/*24*/)==('\54')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_26277);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\54');
}
else if(((C)->_cc/*24*/)==('\135')){
_state=2;
}
else{
r51fcp(C,((T0*)ms51_25441));
_state=2;
}
/*FI]*/
}
else{/*[IF*/
if(r51skip1(C,'\54')){
_state=1;
}
else if(((C)->_cc/*24*/)==('\135')){
/*[IF*/
if((_generic_list)==((void*)(NULL))){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_54404);
r51warning(r51current_position(C1),b1);
}/*]*/
{T257*n=malloc(sizeof(*n));
*n=M257;
/*[IRF3.3make*/((((T257*)(n)))->_base_class_name)=(_base_class_name);
/*]*/
C->_last_class_type=(T0*)n;
}
}
else{
{T258*n=malloc(sizeof(*n));
*n=M258;
r258make(n,_base_class_name,_generic_list);
C->_last_class_type=(T0*)n;
}
}
/*FI]*/
C->_ok=r51skip1(C,'\135');
_state=3;
}
else if(r51a_type(C)){
/*[IF*/
if((_generic_list)==((void*)(NULL))){
_generic_list=se_ma245(1,
(C)->_last_type/*157*/);
}
else{
r245add_last(((T245*)_generic_list),(C)->_last_type/*157*/);
}
/*FI]*/
r51warning(X62start_position((C)->_last_type/*157*/),((T0*)ms51_9410));
}
else{
r51fcp(C,((T0*)ms51_20315));
_state=3;
}
/*FI]*/
}}
}
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.in_ensure*/
/*No:EIFFEL_PARSER.fz_end*/
/*No:EIFFEL_PARSER.fz_external*/
/*No:EIFFEL_PARSER.inside_function*/
/*No:EIFFEL_PARSER.us_and*/
T0* r51a_assertion(T51* C){
T0* R=NULL;
T2 _state=0;
T0* _assertion=NULL;
T0* _expression=NULL;
T0* _tag=NULL;
while (!((_state)>(3))) {
{int z1=_state;
if((0==z1)){
/*[IF*/
if(((C)->_cc/*24*/)==('\73')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms12_41475);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\73');
/*[IF*/
if(((C)->_last_comments/*25*/)!=((void*)(NULL))){
{T85*n=malloc(sizeof(*n));
*n=M85;
r85make(n,NULL,NULL,r51get_comments(C));
_assertion=(T0*)n;
}
/*[IF*/
if((R)==((void*)(NULL))){
R=se_ma88(1,
_assertion);
}
else{
r88add_last(((T88*)R),_assertion);
}
/*FI]*/
}
/*FI]*/
}
else if(r51a_tag_mark(C)){
_tag=(C)->_last_tag_mark/*161*/;
_state=1;
}
else if(r51a_expression(C)){
_expression=(C)->_last_expression/*97*/;
_state=2;
}
else{
_state=4;
}
/*FI]*/
}
else
if((1==z1)){
/*[IF*/
if(r51skip1(C,'\73')){
{T85*n=malloc(sizeof(*n));
*n=M85;
r85make(n,_tag,NULL,r51get_comments(C));
_assertion=(T0*)n;
}
/*[IF*/
if((R)==((void*)(NULL))){
R=se_ma88(1,
_assertion);
}
else{
r88add_last(((T88*)R),_assertion);
}
/*FI]*/
_state=0;
}
else if(r51a_tag_mark(C)){
{T85*n=malloc(sizeof(*n));
*n=M85;
r85make(n,_tag,NULL,r51get_comments(C));
_assertion=(T0*)n;
}
/*[IF*/
if((R)==((void*)(NULL))){
R=se_ma88(1,
_assertion);
}
else{
r88add_last(((T88*)R),_assertion);
}
/*FI]*/
_tag=(C)->_last_tag_mark/*161*/;
}
else if(r51a_expression(C)){
_expression=(C)->_last_expression/*97*/;
_state=3;
}
else{
{T85*n=malloc(sizeof(*n));
*n=M85;
r85make(n,_tag,NULL,r51get_comments(C));
_assertion=(T0*)n;
}
/*[IF*/
if((R)==((void*)(NULL))){
R=se_ma88(1,
_assertion);
}
else{
r88add_last(((T88*)R),_assertion);
}
/*FI]*/
_state=4;
}
/*FI]*/
}
else
if((2==z1)){
/*[IF*/
if(r51skip1(C,'\73')){
{T85*n=malloc(sizeof(*n));
*n=M85;
r85make(n,NULL,_expression,r51get_comments(C));
_assertion=(T0*)n;
}
/*[IF*/
if((R)==((void*)(NULL))){
R=se_ma88(1,
_assertion);
}
else{
r88add_last(((T88*)R),_assertion);
}
/*FI]*/
_state=0;
}
else if(r51a_tag_mark(C)){
{T85*n=malloc(sizeof(*n));
*n=M85;
r85make(n,NULL,_expression,r51get_comments(C));
_assertion=(T0*)n;
}
/*[IF*/
if((R)==((void*)(NULL))){
R=se_ma88(1,
_assertion);
}
else{
r88add_last(((T88*)R),_assertion);
}
/*FI]*/
_tag=(C)->_last_tag_mark/*161*/;
_state=1;
}
else if(r51a_expression(C)){
{T85*n=malloc(sizeof(*n));
*n=M85;
r85make(n,NULL,_expression,r51get_comments(C));
_assertion=(T0*)n;
}
/*[IF*/
if((R)==((void*)(NULL))){
R=se_ma88(1,
_assertion);
}
else{
r88add_last(((T88*)R),_assertion);
}
/*FI]*/
_expression=(C)->_last_expression/*97*/;
_state=2;
}
else{
{T85*n=malloc(sizeof(*n));
*n=M85;
r85make(n,NULL,_expression,r51get_comments(C));
_assertion=(T0*)n;
}
/*[IF*/
if((R)==((void*)(NULL))){
R=se_ma88(1,
_assertion);
}
else{
r88add_last(((T88*)R),_assertion);
}
/*FI]*/
_state=4;
}
/*FI]*/
}
else{/*[IF*/
if(r51skip1(C,'\73')){
{T85*n=malloc(sizeof(*n));
*n=M85;
r85make(n,_tag,_expression,r51get_comments(C));
_assertion=(T0*)n;
}
/*[IF*/
if((R)==((void*)(NULL))){
R=se_ma88(1,
_assertion);
}
else{
r88add_last(((T88*)R),_assertion);
}
/*FI]*/
_state=0;
}
else if(r51a_tag_mark(C)){
{T85*n=malloc(sizeof(*n));
*n=M85;
r85make(n,_tag,_expression,r51get_comments(C));
_assertion=(T0*)n;
}
/*[IF*/
if((R)==((void*)(NULL))){
R=se_ma88(1,
_assertion);
}
else{
r88add_last(((T88*)R),_assertion);
}
/*FI]*/
_tag=(C)->_last_tag_mark/*161*/;
_state=1;
}
else if(r51a_expression(C)){
{T85*n=malloc(sizeof(*n));
*n=M85;
r85make(n,_tag,_expression,r51get_comments(C));
_assertion=(T0*)n;
}
/*[IF*/
if((R)==((void*)(NULL))){
R=se_ma88(1,
_assertion);
}
else{
r88add_last(((T88*)R),_assertion);
}
/*FI]*/
_expression=(C)->_last_expression/*97*/;
_state=2;
}
else{
{T85*n=malloc(sizeof(*n));
*n=M85;
r85make(n,_tag,_expression,r51get_comments(C));
_assertion=(T0*)n;
}
/*[IF*/
if((R)==((void*)(NULL))){
R=se_ma88(1,
_assertion);
}
else{
r88add_last(((T88*)R),_assertion);
}
/*FI]*/
_state=4;
}
/*FI]*/
}}
}
return R;
}
/*No:EIFFEL_PARSER.in_rescue*/
/*No:EIFFEL_PARSER.fz_old*/
T6 r51a_feature_name(T51* C){
T6 R=0;
/*[IF*/
if(r51a_prefix(C)){
C->_last_feature_name=(C)->_last_prefix/*125*/;
R=1;
}
else if(r51a_infix(C)){
C->_last_feature_name=(C)->_last_infix/*121*/;
R=1;
}
else if(r51a_identifier(C)){
C->_last_feature_name=r92to_simple_feature_name((T92*)(oBC51tmp_name));
R=1;
}
/*FI]*/
return R;
}
T6 r51a_feature_declaration(T51* C){
T6 R=0;
r182initialize((T182*)(oBC51tmp_feature));
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_7350))){
/*[IF*/
if(r51a_feature_name(C)){
R=1;
r51to_frozen_feature_name(C);
r182add_synonym((C)->_last_feature_name/*105*/);
}
else{
r51fcp(C,((T0*)ms51_33616));
}
/*FI]*/
}
else if(r51a_feature_name(C)){
R=1;
r182add_synonym((C)->_last_feature_name/*105*/);
}
/*FI]*/
while (!(!(r51skip1(C,'\54')))) {
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_7350))){
/*[IF*/
if(r51a_feature_name(C)){
r51to_frozen_feature_name(C);
r182add_synonym((C)->_last_feature_name/*105*/);
}
else{
r51fcp(C,((T0*)ms51_82695));
}
/*FI]*/
}
else if(r51a_feature_name(C)){
r182add_synonym((C)->_last_feature_name/*105*/);
}
else{
/*[IRF3.6ecp*/{T51* C1=C;
T0* b1=((T0*)ms51_57900);
r51error(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
}
/*[IF*/
if(R){
r51a_formal_arg_list(C);
/*[IF*/
if(r51skip1(C,'\72')){
/*[IF*/
if(r51a_type(C)){
C->_inside_function=1;
/*[IRF3.3set_type*/((((T182*)((T182*)(oBC51tmp_feature))))->_type)=((C)->_last_type/*157*/);
/*]*/
}
else{
r51fcp(C,((T0*)ms51_25441));
}
/*FI]*/
}
else{
C->_inside_function=0;
}
/*FI]*/
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_446))){
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_7098))){
C->_last_feature_declaration=r182to_cst_att_unique((T182*)(oBC51tmp_feature));
}
else if(r51a_boolean_constant(C)){
C->_last_feature_declaration=r182to_cst_att_boolean((T182*)(oBC51tmp_feature),(C)->_last_boolean_constant/*81*/);
}
else if(r51a_character_constant(C)){
C->_last_feature_declaration=r182to_cst_att_character((T182*)(oBC51tmp_feature),(C)->_last_character_constant/*85*/);
}
else if(r51a_manifest_string(C)){
C->_last_feature_declaration=r182to_cst_att_string((T182*)(oBC51tmp_feature),(C)->_last_manifest_string/*145*/);
}
else if(r51a_bit_constant(C)){
C->_last_feature_declaration=r182to_cst_att_bit((T182*)(oBC51tmp_feature),(C)->_last_bit_constant/*77*/);
}
else if(r51a_real_constant(C)){
C->_last_feature_declaration=r182to_cst_att_real((T182*)(oBC51tmp_feature),(C)->_last_real_constant/*153*/);
}
else if(r51a_integer_constant(C)){
C->_last_feature_declaration=r182to_cst_att_integer((T182*)(oBC51tmp_feature),(C)->_last_integer_constant/*129*/);
}
else{
C->_last_feature_declaration=r51a_routine(C);
}
/*FI]*/
}
else{
C->_last_feature_declaration=r182to_writable_attribute((T182*)(oBC51tmp_feature));
}
/*FI]*/
C->_inside_function=0;
C->_inside_once_function=0;
C->_arguments=NULL;
}
/*FI]*/
return R;
}
void r51a_ascii_code(T51* C){
T2 _counter=0;
r51next_char(C);
_counter=0;
C->_last_ascii_code=0;
while (!(((_counter)>(3))||(((C)->_cc/*24*/)==('\57')))) {
{int z1=(C)->_cc/*24*/;
if(((48<=z1)&&(z1<=57))){
C->_last_ascii_code=(((C)->_last_ascii_code/*61*/)*(10))+(r3value((C)->_cc/*24*/));
}
else{r51fcp(C,((T0*)ms51_75355));
}}
_counter=(_counter)+(1);
r51next_char(C);
}
/*[IF*/
if((_counter)==(0)){
r51fcp(C,((T0*)ms51_37500));
}
else if((_counter)>(3)){
r51fcp(C,((T0*)ms51_98605));
}
else{
}
/*FI]*/
}
/*No:EIFFEL_PARSER.em1*/
/*No:EIFFEL_PARSER.em2*/
/*No:EIFFEL_PARSER.fz_ensure*/
/*No:EIFFEL_PARSER.last_index_value*/
/*No:EIFFEL_PARSER.em3*/
/*No:EIFFEL_PARSER.em4*/
T0* r51to_proc_call(T51* C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
/*[IF*/
if((a2)==((void*)(NULL))){
r51fcp(C,((T0*)ms51_198189));
}
else if((a3)==((void*)(NULL))){
{T146*n=malloc(sizeof(*n));
*n=M146;
r146make(n,a1,a2);
R=(T0*)n;
}
}
else if((r132count(((T132*)a3)))==(1)){
{T147*n=malloc(sizeof(*n));
*n=M147;
r147make(n,a1,a2,a3);
R=(T0*)n;
}
}
else{
{T148*n=malloc(sizeof(*n));
*n=M148;
r148make(n,a1,a2,a3);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.em5*/
/*No:EIFFEL_PARSER.last_type*/
/*No:EIFFEL_PARSER.em6*/
/*No:EIFFEL_PARSER.em7*/
T6 r51a_index_value(T51* C){
T6 R=0;
/*[IF*/
if(r51a_identifier(C)){
C->_last_index_value=r92to_simple_feature_name((T92*)(oBC51tmp_name));
R=1;
}
else if(r51a_manifest_constant(C)){
C->_last_index_value=(C)->_last_manifest_constant/*141*/;
R=1;
}
/*FI]*/
return R;
}
T6 r51a_expression(T51* C){
T6 R=0;
T0* _list=NULL;
T0* _sp=NULL;
/*[IF*/
if(r51skip2(C,'\74','\74')){
R=1;
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
while (!(!(r51a_expression(C)))) {
/*[IF*/
if((_list)==((void*)(NULL))){
_list=se_ma94(1,
(C)->_last_expression/*97*/);
}
else{
X94add_last(_list,(C)->_last_expression/*97*/);
}
/*FI]*/
C->_ok=r51skip1(C,'\54');
}
/*[IF*/
if(!(r51skip2(C,'\76','\76'))){
r51fcp(C,((T0*)ms51_57753));
}
/*FI]*/
{T93*n=malloc(sizeof(*n));
*n=M93;
r93make(n,_sp,_list);
C->_last_expression=(T0*)n;
}
}
else{
R=r51a_e0(C);
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.em8*/
/*No:EIFFEL_PARSER.em9*/
T6 r51a_feature_name_list(T51* C){
T6 R=0;
T2 _state=0;
C->_last_feature_name_list=NULL;
while (!((_state)>=(3))) {
{int z1=_state;
if((0==z1)){
/*[IF*/
if(r51a_feature_name(C)){
{T67*n=malloc(sizeof(*n));
*n=M67;
/*[IRF3.3make_1*/((((T67*)(n)))->_first)=((C)->_last_feature_name/*105*/);
/*]*/
C->_last_feature_name_list=(T0*)n;
}
R=1;
_state=1;
}
else if(((C)->_cc/*24*/)==('\54')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_48195);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\54');
}
else{
_state=3;
}
/*FI]*/
}
else
if((1==z1)){
/*[IF*/
if(((C)->_cc/*24*/)==('\54')){
C->_ok=r51skip1(C,'\54');
_state=2;
}
else if(r51a_feature_name(C)){
r51warning(X65start_position((C)->_last_feature_name/*105*/),((T0*)ms51_9410));
r67add_last((T67*)((C)->_last_feature_name_list/*109*/),(C)->_last_feature_name/*105*/);
}
else{
_state=3;
}
/*FI]*/
}
else {/*[IF*/
if(r51a_feature_name(C)){
r67add_last((T67*)((C)->_last_feature_name_list/*109*/),(C)->_last_feature_name/*105*/);
_state=1;
}
else if(((C)->_cc/*24*/)==('\54')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_26277);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\54');
}
else{
/*[IRF3.6ecp*/{T51* C1=C;
T0* b1=((T0*)ms51_33616);
r51error(r51current_position(C1),b1);
}/*]*/
_state=3;
}
/*FI]*/
}}
}
return R;
}
T6 r51a_type(T51* C){
T6 R=0;
T0* _argument_name2=NULL;
T0* _sp=NULL;
R=1;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_1724))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
/*[IF*/
if(r51a_infix(C)){
{T239*n=malloc(sizeof(*n));
*n=M239;
r239make(n,_sp,(C)->_last_infix/*121*/);
C->_last_type=(T0*)n;
}
}
else if(r51a_prefix(C)){
{T239*n=malloc(sizeof(*n));
*n=M239;
r239make(n,_sp,(C)->_last_prefix/*125*/);
C->_last_type=(T0*)n;
}
}
else if(r51a_identifier(C)){
/*[IF*/
if(r51a_current(C)){
{T241*n=malloc(sizeof(*n));
*n=M241;
/*[IRF3.3make*/((((T241*)(n)))->_start_position)=(_sp);
/*]*/
C->_last_type=(T0*)n;
}
}
else if(r51a_argument(C)){
_argument_name2=(C)->_last_expression/*97*/;
if(NULL!=(_argument_name2))switch(((T0*)_argument_name2)->id) {
case 172:
break;
default:
_argument_name2=NULL;
};{T242*n=malloc(sizeof(*n));
*n=M242;
r242make(n,_sp,_argument_name2);
C->_last_type=(T0*)n;
}
}
else{
{T239*n=malloc(sizeof(*n));
*n=M239;
r239make(n,_sp,r92to_simple_feature_name((T92*)(oBC51tmp_name)));
C->_last_type=(T0*)n;
}
}
/*FI]*/
}
else{
r51fcp(C,((T0*)ms51_350632));
}
/*FI]*/
}
else if(r51a_keyword(C,((T0*)ms12_10840))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
/*[IF*/
if(r51a_class_type(C)){
{T259*n=malloc(sizeof(*n));
*n=M259;
r259make(n,_sp,(C)->_last_class_type/*93*/);
C->_last_type=(T0*)n;
}
}
else{
r51fcp(C,((T0*)ms51_92480));
}
/*FI]*/
}
else if(r51a_keyword(C,((T0*)ms13_687))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
/*[IF*/
if(r51a_integer(C)){
{T260*n=malloc(sizeof(*n));
*n=M260;
r260make(n,_sp,(C)->_last_integer_constant/*129*/);
C->_last_type=(T0*)n;
}
}
else if(r51a_identifier(C)){
{T262*n=malloc(sizeof(*n));
*n=M262;
r262make(n,_sp,r92to_simple_feature_name((T92*)(oBC51tmp_name)));
C->_last_type=(T0*)n;
}
}
else{
r51fcp(C,((T0*)ms51_116370));
}
/*FI]*/
}
else if(r51a_type_formal_generic(C)){
C->_last_type=(C)->_last_type_formal_generic/*117*/;
}
else if(r51a_class_type(C)){
C->_last_type=(C)->_last_class_type/*93*/;
}
else{
R=0;
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.fz_rename*/
/*No:EIFFEL_PARSER.fz_rescue*/
T0* r51a_routine(T51* C){
T0* R=NULL;
T0* _ea=NULL;
T0* _al=NULL;
T0* _hc=NULL;
T0* _sp=NULL;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_10928))){
/*[IF*/
if(r51a_manifest_string(C)){
/*[IRF3.3set_obsolete_mark*/((((T182*)((T182*)(oBC51tmp_feature))))->_obsolete_mark)=((C)->_last_manifest_string/*145*/);
/*]*/
}
else{
r51fcp(C,((T0*)ms51_71060));
}
/*FI]*/
}
/*FI]*/
/*[IRF3.3set_header_comment*/((((T182*)((T182*)(oBC51tmp_feature))))->_header_comment)=(r51get_comments(C));
/*]*/
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_8904))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_1740))){
_hc=r51get_comments(C);
r182set_require_else((T182*)(oBC51tmp_feature),_sp,_hc,r51a_assertion(C));
}
else{
_hc=r51get_comments(C);
r182set_require((T182*)(oBC51tmp_feature),_sp,_hc,r51a_assertion(C));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_2690a))){
r51a_local_var_list(C);
}
/*FI]*/
R=r51a_routine_body(C);
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_7068))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
C->_in_ensure=1;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_1764))){
_hc=r51get_comments(C);
_al=r51a_assertion(C);
/*[IF*/
if(((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))){
{T199*n=malloc(sizeof(*n));
*n=M199;
r199make(n,_sp,_hc,_al);
_ea=(T0*)n;
}
/*[IRF3.3set_ensure_then*/((((T199*)(((T199*)_ea))))->_is_ensure_then)=(1);
/*]*/
}
/*FI]*/
X198set_ensure_assertion(R,_ea);
}
else{
_hc=r51get_comments(C);
_al=r51a_assertion(C);
/*[IF*/
if(((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))){
{T199*n=malloc(sizeof(*n));
*n=M199;
r199make(n,_sp,_hc,_al);
_ea=(T0*)n;
}
}
/*FI]*/
X198set_ensure_assertion(R,_ea);
}
/*FI]*/
C->_in_ensure=0;
}
/*FI]*/
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_7002))){
C->_in_rescue=1;
X198set_rescue_compound(R,r51a_compound2(C,((T0*)ms12_7002),((T0*)ms12_951)));
C->_in_rescue=0;
}
else{
/*[IF*/
if(!(r51a_keyword(C,((T0*)ms12_951)))){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_72240);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
C->_local_vars=NULL;
return R;
}
T6 r51a_creation(T51* C){
T6 R=0;
T2 _state=0;
T0* _call=NULL;
T0* _proc_name=NULL;
T0* _writable=NULL;
T0* _type=NULL;
T0* _sp=NULL;
while (!((_state)>(6))) {
{int z1=_state;
if((0==z1)){
/*[IF*/
if(r51skip1(C,'\41')){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
_state=1;
}
else{
_state=7;
}
/*FI]*/
}
else
if((1==z1)){
/*[IF*/
if(r51a_type(C)){
_type=(C)->_last_type/*157*/;
/*[IF*/
if(X62is_anchored(_type)){
r51warning(X62start_position(_type),((T0*)ms51_136367));
}
/*FI]*/
_state=2;
}
else if(r51skip1(C,'\41')){
_state=3;
}
else{
r51fcp(C,((T0*)ms51_74340));
_state=8;
}
/*FI]*/
}
else
if((2==z1)){
/*[IF*/
if(r51skip1(C,'\41')){
_state=3;
}
else{
_state=8;
r51fcp(C,((T0*)ms51_47516));
}
/*FI]*/
}
else
if((3==z1)){
/*[IF*/
if(r51a_identifier(C)){
/*[IF*/
if(r51a_current(C)){
_state=8;
r51error(X89start_position((C)->_last_expression/*97*/),((T0*)ms51_74830));
}
else if(r51a_argument(C)){
_state=8;
r51error(X89start_position((C)->_last_expression/*97*/),((T0*)ms51_112905));
}
else if((r51a_result(C))||(r51a_local_variable(C))){
_writable=(C)->_last_expression/*97*/;
_state=4;
}
else{
_writable=r92to_simple_feature_name((T92*)(oBC51tmp_name));
_state=4;
}
/*FI]*/
}
else{
_state=8;
r51fcp(C,((T0*)ms51_63591));
}
/*FI]*/
}
else
if((4==z1)){
/*[IF*/
if(r51skip1unless2(C,'\56','\56')){
_state=5;
}
else{
_state=7;
}
/*FI]*/
}
else
if((5==z1)){
/*[IF*/
if(r51a_identifier(C)){
_proc_name=r92to_simple_feature_name((T92*)(oBC51tmp_name));
_state=6;
}
else{
_state=8;
r51fcp(C,((T0*)ms51_85917));
}
/*FI]*/
}
else{/*[IF*/
if(((C)->_cc/*24*/)==('\50')){
_call=r51to_proc_call(C,_writable,_proc_name,r51a_actuals(C));
}
else{
{T146*n=malloc(sizeof(*n));
*n=M146;
r146make(n,_writable,_proc_name);
_call=(T0*)n;
}
}
/*FI]*/
_state=7;
}}
}
/*[IF*/
if(((_state)==(7))&&((_sp)!=((void*)(NULL)))){
R=1;
/*[IF*/
if(((_type)==((void*)(NULL)))&&((_call)==((void*)(NULL)))){
{T231*n=malloc(sizeof(*n));
*n=M231;
r231make(n,_sp,_writable);
C->_last_instruction=(T0*)n;
}
}
else if(((_type)!=((void*)(NULL)))&&((_call)==((void*)(NULL)))){
{T234*n=malloc(sizeof(*n));
*n=M234;
r234make(n,_sp,_type,_writable);
C->_last_instruction=(T0*)n;
}
}
else if(((_type)==((void*)(NULL)))&&((_call)!=((void*)(NULL)))){
{T236*n=malloc(sizeof(*n));
*n=M236;
r236make(n,_sp,_writable,_call);
C->_last_instruction=(T0*)n;
}
}
else{
{T238*n=malloc(sizeof(*n));
*n=M238;
r238make(n,_sp,_type,_writable,_call);
C->_last_instruction=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
return R;
}
T6 r51a_real(T51* C){
T6 R=0;
T2 _c=0;
T2 _l=0;
T2 _state=0;
/*[IF*/
if((r3is_digit((C)->_cc/*24*/))||(((C)->_cc/*24*/)==('\56'))){
_l=(C)->_line/*16*/;
_c=(C)->_column/*12*/;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC51tmp_string))))->_count)=(0);
/*]*/
/*[IF*/
if(((C)->_cc/*24*/)==('\56')){
r7append((T7*)(oBC51tmp_string),((T0*)ms12_194));
_state=5;
}
else{
r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
}
/*FI]*/
while (!((_state)>(11))) {
r51next_char(C);
{int z1=_state;
if((0==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
}
else
if((46==z2)){
r7extend((T7*)(oBC51tmp_string),'\56');
_state=4;
}
else{_state=13;
}}
}
else
if((1==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
_state=2;
}
else{r51fcp(C,((T0*)ms51_98851));
}}
}
else
if((2==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
_state=3;
}
else{r51fcp(C,((T0*)ms51_98851));
}}
}
else
if((3==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
_state=0;
}
else{r51fcp(C,((T0*)ms51_98851));
}}
}
else
if((4==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
_state=6;
}
else
if((69==z2)||(101==z2)){
r7extend((T7*)(oBC51tmp_string),'E');
_state=10;
}
else{_state=12;
}}
}
else
if((5==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
_state=6;
}
else{_state=13;
}}
}
else
if((6==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
}
else
if((69==z2)||(101==z2)){
r7extend((T7*)(oBC51tmp_string),'E');
_state=10;
}
else
if((95==z2)){
_state=7;
}
else{_state=12;
}}
}
else
if((7==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
_state=8;
}
else{r51fcp(C,((T0*)ms51_146421));
}}
}
else
if((8==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
_state=9;
}
else{r51fcp(C,((T0*)ms51_146421));
}}
}
else
if((9==z1)){
{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
_state=6;
}
else{r51fcp(C,((T0*)ms51_146421));
}}
}
else
if((10==z1)){
{int z2=(C)->_cc/*24*/;
if((43==z2)){
_state=11;
}
else
if((45==z2)){
r7extend((T7*)(oBC51tmp_string),'\55');
_state=11;
}
else
if(((48<=z2)&&(z2<=57))){
r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
_state=11;
}
else{r51fcp(C,((T0*)ms51_71434));
_state=13;
}}
}
else{{int z2=(C)->_cc/*24*/;
if(((48<=z2)&&(z2<=57))){
r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
}
else{_state=12;
}}
}}
}
/*[IF*/
if((_state)==(12)){
{T157*n=malloc(sizeof(*n));
*n=M157;
r157make(n,r51pos(_l,_c),r7twin((T7*)(oBC51tmp_string)));
C->_last_real_constant=(T0*)n;
}
R=1;
r51skip_comments(C);
}
else{
r51go_back_at(C,_l,_c);
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.fz_elseif*/
void r51a_assignment_aux(T51* C,T6 a1){
T0* _rhs=NULL;
T0* _writable=NULL;
/*[IF*/
if(r51a_current(C)){
r37add_position(X89start_position((C)->_last_expression/*97*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_43368);
r37fatal_error((T37*)(oBC11eh),b1);
}/*]*/
}
else if(r51a_void(C)){
r37add_position(r92start_position((T92*)(oBC51tmp_name)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_35190);
r37fatal_error((T37*)(oBC11eh),b1);
}/*]*/
}
else if(r51a_argument(C)){
r37add_position(X89start_position((C)->_last_expression/*97*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_69224);
r37fatal_error((T37*)(oBC11eh),b1);
}/*]*/
}
else{
/*[IF*/
if(r92is_result()){
_writable=r51last_result(C);
}
else if(r51a_local_variable(C)){
_writable=(C)->_last_expression/*97*/;
}
else{
_writable=r92to_simple_feature_name((T92*)(oBC51tmp_name));
}
/*FI]*/
/*[IF*/
if(r51a_expression(C)){
_rhs=(C)->_last_expression/*97*/;
/*[IF*/
if(a1){
{T267*n=malloc(sizeof(*n));
*n=M267;
r267make(n,_writable,_rhs);
C->_last_instruction=(T0*)n;
}
}
else{
{T268*n=malloc(sizeof(*n));
*n=M268;
r268make(n,_writable,_rhs);
C->_last_instruction=(T0*)n;
}
}
/*FI]*/
}
else{
r51fcp(C,((T0*)ms51_146421a));
}
/*FI]*/
}
/*FI]*/
}
/*No:EIFFEL_PARSER.us_double*/
T0* r51a_external(T51* C){
T0* R=NULL;
T0* _l=NULL;
/*[IF*/
if(((C)->_cc/*24*/)!=('\42')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_14027a);
r51warning(r51current_position(C1),b1);
}/*]*/
}
else{
C->_ok=r51skip1(C,'\42');
}
/*FI]*/
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_18788))){
{T277*n=malloc(sizeof(*n));
*n=M277;
_l=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms12_25909))){
{T278*n=malloc(sizeof(*n));
*n=M278;
_l=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms12_50768))){
{T280*n=malloc(sizeof(*n));
*n=M280;
_l=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms12_37456))){
{T281*n=malloc(sizeof(*n));
*n=M281;
_l=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms12_66440))){
{T282*n=malloc(sizeof(*n));
*n=M282;
_l=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms51_675))){
{T277*n=malloc(sizeof(*n));
*n=M277;
_l=(T0*)n;
}
r51wcpefnc(C,((T0*)ms51_675a),((T0*)ms12_18788));
}
else if(r51a_keyword(C,((T0*)ms51_681))){
{T278*n=malloc(sizeof(*n));
*n=M278;
_l=(T0*)n;
}
r51wcpefnc(C,((T0*)ms51_681a),((T0*)ms12_25909));
}
else if(r51a_keyword(C,((T0*)ms51_1216))){
{T280*n=malloc(sizeof(*n));
*n=M280;
_l=(T0*)n;
}
r51wcpefnc(C,((T0*)ms51_1216a),((T0*)ms12_50768));
}
else if(r51a_keyword(C,((T0*)ms51_68))){
{T281*n=malloc(sizeof(*n));
*n=M281;
_l=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms51_286))){
{T282*n=malloc(sizeof(*n));
*n=M282;
_l=(T0*)n;
}
r51wcpefnc(C,((T0*)ms51_286a),((T0*)ms12_66440));
}
else if(r51a_keyword(C,((T0*)ms12_32576))){
{T283*n=malloc(sizeof(*n));
*n=M283;
_l=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms12_38896))){
{T285*n=malloc(sizeof(*n));
*n=M285;
_l=(T0*)n;
}
}
else{
r51fcp(C,((T0*)ms51_1422390));
}
/*FI]*/
/*[IF*/
if(((C)->_cc/*24*/)!=('\42')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_14027a);
r51warning(r51current_position(C1),b1);
}/*]*/
}
else{
C->_ok=r51skip1(C,'\42');
}
/*FI]*/
R=r182to_external_routine((T182*)(oBC51tmp_feature),_l,r51a_alias(C));
return R;
}
/*No:EIFFEL_PARSER.fz_creation*/
T6 r51a_debug(T51* C){
T6 R=0;
T0* _e_debug=NULL;
T0* _list=NULL;
T0* _sp=NULL;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_2670))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
/*[IF*/
if(r51skip1(C,'\50')){
while (!(!(r51a_manifest_string(C)))) {
/*[IF*/
if((_list)==((void*)(NULL))){
_list=se_ma205(1,
(C)->_last_manifest_string/*145*/);
}
else{
r205add_last(((T205*)_list),(C)->_last_manifest_string/*145*/);
}
/*FI]*/
C->_ok=r51skip1(C,'\54');
}
/*[IF*/
if((_list)==((void*)(NULL))){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_61008);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
/*[IF*/
if(!(r51skip1(C,'\51'))){
r51fcp(C,((T0*)ms51_76190));
}
/*FI]*/
}
/*FI]*/
R=1;
{T204*n=malloc(sizeof(*n));
*n=M204;
r204make(n,_sp,_list,r51a_compound2(C,((T0*)ms51_2670),((T0*)ms12_951)));
_e_debug=(T0*)n;
}
C->_last_instruction=_e_debug;
}
/*FI]*/
return R;
}
T6 r51a_parent(T51* C){
T6 R=0;
/*[IF*/
if(r51a_class_type(C)){
R=1;
{T60*n=malloc(sizeof(*n));
*n=M60;
r60make(n,(C)->_last_class_type/*93*/);
C->_last_parent=(T0*)n;
}
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_6912))){
r51a_rename_list(C);
/*[IF*/
if(((C)->_cc/*24*/)==('\73')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_71638);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\73');
}
/*FI]*/
}
/*FI]*/
r51a_new_export_list(C);
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_10824))){
/*[IF*/
if(r51a_feature_name_list(C)){
/*[IRF3.3set_undefine*/((((T60*)((T60*)((C)->_last_parent/*149*/))))->_undefine_list)=((C)->_last_feature_name_list/*109*/);
/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_10728))){
/*[IF*/
if(r51a_feature_name_list(C)){
/*[IRF3.3set_redefine*/((((T60*)((T60*)((C)->_last_parent/*149*/))))->_redefine_list)=((C)->_last_feature_name_list/*109*/);
/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_7410))){
/*[IF*/
if(r51a_feature_name_list(C)){
/*[IRF3.3set_select*/((((T60*)((T60*)((C)->_last_parent/*149*/))))->_select_list)=((C)->_last_feature_name_list/*109*/);
/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((((r51a_keyword(C,((T0*)ms12_6912)))||(r51a_keyword(C,((T0*)ms12_7614))))||(r51a_keyword(C,((T0*)ms12_10824))))||(r51a_keyword(C,((T0*)ms12_10728))))||(r51a_keyword(C,((T0*)ms12_7410)))){
r37add_position(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_667805);
r37fatal_error((T37*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
C->_ok=r51a_keyword(C,((T0*)ms12_951));
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.fz_desc*/
T6 r51a_bit_constant(T51* C){
T6 R=0;
T2 _state=0;
T2 _c=0;
T2 _l=0;
/*[IF*/
if((((C)->_cc/*24*/)==('0'))||(((C)->_cc/*24*/)==('1'))){
_l=(C)->_line/*16*/;
_c=(C)->_column/*12*/;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC51tmp_string))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
while (!((_state)>(0))) {
r51next_char(C);
{int z1=(C)->_cc/*24*/;
if(((48<=z1)&&(z1<=49))){
r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
}
else
if((66==z1)||(98==z1)){
{T156*n=malloc(sizeof(*n));
*n=M156;
r156make(n,r51pos(_l,_c),r7twin((T7*)(oBC51tmp_string)));
C->_last_bit_constant=(T0*)n;
}
r51next_char(C);
r51skip_comments(C);
_state=1;
R=1;
}
else{r51go_back_at(C,_l,_c);
_state=2;
}}
}
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.us_and_then*/
/*No:EIFFEL_PARSER.fz_alias*/
void r51a_formal_generic_list(T51* C){
T2 _state=0;
T0* _list=NULL;
T0* _fga=NULL;
T0* _constraint=NULL;
T0* _name=NULL;
T0* _sp=NULL;
C->_formal_generic_list=NULL;
while (!((_state)>(4))) {
{int z1=_state;
if((0==z1)){
/*[IF*/
if(r51skip1(C,'\133')){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
_state=1;
}
else{
_state=5;
}
/*FI]*/
}
else
if((1==z1)){
/*[IF*/
if(r51a_base_class_name(C)){
_name=(C)->_last_class_name/*89*/;
_state=2;
}
else{
_state=6;
}
/*FI]*/
}
else
if((2==z1)){
/*[IF*/
if(r51skip2(C,'\55','\76')){
_state=4;
}
else if((((C)->_cc/*24*/)==('\54'))||(((C)->_cc/*24*/)==('\135'))){
{T263*n=malloc(sizeof(*n));
*n=M263;
r263make(n,_name,_constraint);
_fga=(T0*)n;
}
_name=NULL;
_constraint=NULL;
/*[IF*/
if((_list)==((void*)(NULL))){
_list=se_ma264(1,
_fga);
}
else{
r264add_last(((T264*)_list),_fga);
}
/*FI]*/
_fga=NULL;
/*[IF*/
if(r51skip1(C,'\54')){
_state=1;
}
else{
C->_ok=r51skip1(C,'\135');
_state=5;
}
/*FI]*/
}
else{
_state=6;
}
/*FI]*/
}
else
if((3==z1)){
/*[IF*/
if((((C)->_cc/*24*/)==('\54'))||(((C)->_cc/*24*/)==('\135'))){
{T263*n=malloc(sizeof(*n));
*n=M263;
r263make(n,_name,_constraint);
_fga=(T0*)n;
}
_name=NULL;
_constraint=NULL;
/*[IF*/
if((_list)==((void*)(NULL))){
_list=se_ma264(1,
_fga);
}
else{
r264add_last(((T264*)_list),_fga);
}
/*FI]*/
_fga=NULL;
/*[IF*/
if(r51skip1(C,'\54')){
_state=1;
}
else{
C->_ok=r51skip1(C,'\135');
_state=5;
}
/*FI]*/
}
else{
_state=6;
}
/*FI]*/
}
else{/*[IF*/
if(r51a_class_type(C)){
_constraint=(C)->_last_class_type/*93*/;
_state=3;
}
else{
r51fcp(C,((T0*)ms51_60760));
_state=6;
}
/*FI]*/
}}
}
/*[IF*/
if((_state)==(6)){
}
else if(((_sp)!=((void*)(NULL)))&&((_list)==((void*)(NULL)))){
r51warning(_sp,((T0*)ms51_79128a));
}
else if((_sp)!=((void*)(NULL))){
{T76*n=malloc(sizeof(*n));
*n=M76;
r76make(n,_sp,_list);
C->_formal_generic_list=(T0*)n;
}
/*[IRF3.3set_formal_generic_list*/((((T41*)((T41*)((C)->_last_base_class/*65*/))))->_formal_generic_list)=((C)->_formal_generic_list/*37*/);
/*]*/
}
/*FI]*/
}
/*No:EIFFEL_PARSER.fz_class*/
/*No:EIFFEL_PARSER.fz_prefix*/
/*No:EIFFEL_PARSER.fz_strip*/
/*No:EIFFEL_PARSER.fz_unique*/
T6 r51skip1unless2(T51* C,T3 a1,T3 a2){
T6 R=0;
C->_start_line=(C)->_line/*16*/;
C->_start_column=(C)->_column/*12*/;
/*[IF*/
if(((C)->_cc/*24*/)==(a1)){
r51next_char(C);
/*[IF*/
if(((C)->_cc/*24*/)==(a2)){
r51prev_char(C);
}
else{
R=1;
r51skip_comments(C);
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.ecp*/
void r51fcp(T51* C,T0* a1){
r37add_position(r51current_position(C));
/*[IRF3.6fatal_error*/{T0* b1=a1;
r37fatal_error((T37*)(oBC11eh),b1);
}/*]*/
}
T0* r51a_compound1(T51* C){
T0* R=NULL;
T0* _remainder=NULL;
T0* _first_one=NULL;
T0* _instruction=NULL;
T0* _hc=NULL;
_hc=r51get_comments(C);
while (!(((C)->_cc/*24*/)!=('\73'))) {
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms12_41475);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\73');
}
while (!((!(r51a_instruction(C)))||((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)>(0)))) {
_instruction=(C)->_last_instruction/*133*/;
/*[IF*/
if(((C)->_cc/*24*/)==('\50')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_9410a);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
C->_ok=r51skip1(C,'\73');
while (!(((C)->_cc/*24*/)!=('\73'))) {
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms12_41475);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\73');
}
/*[IF*/
if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
_instruction=X144add_comment(_instruction,r51get_comments(C));
/*[IF*/
if((_first_one)==((void*)(NULL))){
_first_one=_instruction;
}
else{
/*[IF*/
if((_remainder)==((void*)(NULL))){
{T201*n=malloc(sizeof(*n));
*n=M201;
r201with_capacity(n,4);
_remainder=(T0*)n;
}
}
/*FI]*/
r201add_last(((T201*)_remainder),_instruction);
}
/*FI]*/
}
/*FI]*/
}
/*[IF*/
if(((_hc)!=((void*)(NULL)))||((_first_one)!=((void*)(NULL)))){
{T200*n=malloc(sizeof(*n));
*n=M200;
r200make(n,_hc,_first_one,_remainder);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T6 r51a_result(T51* C){
T6 R=0;
/*[IF*/
if(r92is_result()){
C->_last_expression=r51last_result(C);
R=1;
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.fz_all*/
T6 r51skip1(T51* C,T3 a1){
T6 R=0;
/*[IF*/
if((a1)==((C)->_cc/*24*/)){
C->_start_line=(C)->_line/*16*/;
C->_start_column=(C)->_column/*12*/;
R=1;
r51next_char(C);
r51skip_comments(C);
}
/*FI]*/
return R;
}
T0*oBC51lcs=NULL;
T6 r51skip2(T51* C,T3 a1,T3 a2){
T6 R=0;
/*[IF*/
if((a1)==((C)->_cc/*24*/)){
C->_start_line=(C)->_line/*16*/;
C->_start_column=(C)->_column/*12*/;
r51next_char(C);
/*[IF*/
if((a2)==((C)->_cc/*24*/)){
R=1;
r51next_char(C);
r51skip_comments(C);
}
else{
r51prev_char(C);
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.last_keyword*/
T6 r51a_boolean_constant(T51* C){
T6 R=0;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_1832))){
{T151*n=malloc(sizeof(*n));
*n=M151;
/*[IRF3.3make*/((((T151*)(n)))->_start_position)=(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
/*]*/
C->_last_boolean_constant=(T0*)n;
}
R=1;
}
else if(r51a_keyword(C,((T0*)ms12_2690))){
{T152*n=malloc(sizeof(*n));
*n=M152;
/*[IRF3.3make*/((((T152*)(n)))->_start_position)=(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
/*]*/
C->_last_boolean_constant=(T0*)n;
}
R=1;
}
/*FI]*/
return R;
}
T6 r51a_index_clause(T51* C){
T6 R=0;
T0* _index_clause=NULL;
/*[IF*/
if(r51a_identifier(C)){
R=1;
/*[IF*/
if(r51skip1(C,'\72')){
{T305*n=malloc(sizeof(*n));
*n=M305;
/*[IRF3.3with_tag*/((((T305*)(n)))->_tag)=(r92to_string((T92*)(oBC51tmp_name)));
/*]*/
_index_clause=(T0*)n;
}
/*[IF*/
if(r51a_index_value(C)){
r305add_last(((T305*)_index_clause),(C)->_last_index_value/*137*/);
}
else{
r51fcp(C,((T0*)ms51_86146));
}
/*FI]*/
}
else{
{T305*n=malloc(sizeof(*n));
*n=M305;
/*[IRF3.6without_tag*/{T305* C1=n;
T0* b1=r92to_simple_feature_name((T92*)(oBC51tmp_name));
r305add_last(C1,b1);
}/*]*/
_index_clause=(T0*)n;
}
}
/*FI]*/
}
else if(r51a_manifest_constant(C)){
R=1;
{T305*n=malloc(sizeof(*n));
*n=M305;
/*[IRF3.6without_tag*/{T305* C1=n;
T0* b1=(C)->_last_manifest_constant/*141*/;
r305add_last(C1,b1);
}/*]*/
_index_clause=(T0*)n;
}
}
/*FI]*/
/*[IF*/
if(R){
while (!(!(r51skip1(C,'\54')))) {
/*[IF*/
if(r51a_index_value(C)){
r305add_last(((T305*)_index_clause),(C)->_last_index_value/*137*/);
}
else{
r51fcp(C,((T0*)ms51_86146));
}
/*FI]*/
}
r41add_index_clause((T41*)((C)->_last_base_class/*65*/),_index_clause);
}
/*FI]*/
return R;
}
T6 r51a_instruction(T51* C){
T6 R=0;
R=(((((((r51a_check(C))||(r51a_debug(C)))||(r51a_conditional(C)))||(r51a_retry(C)))||(r51a_inspect(C)))||(r51a_loop(C)))||(r51a_creation(C)))||(r51a_assignment_or_call(C));
return R;
}
void r51wcpefnc(T51* C,T0* a1,T0* a2){
/*[IRF3.6append*/{T0* b1=((T0*)ms51_44280);
r7append((T7*)(oBC37explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC37explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms51_6730);
r7append((T7*)(oBC37explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC37explanation),b1);
}/*]*/
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_94878);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*No:EIFFEL_PARSER.wcp*/
/*No:EIFFEL_PARSER.last_type_formal_generic*/
T6 r51a_base_type(T51* C){
T6 R=0;
T0* _sp=NULL;
R=1;
/*[IF*/
if(r51a_keyword(C,((T0*)ms13_714))){
{T243*n=malloc(sizeof(*n));
*n=M243;
r243make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms13_1990))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
/*[IF*/
if(((r51skip1(C,'\133'))&&(r51a_type(C)))&&(r51skip1(C,'\135'))){
{T244*n=malloc(sizeof(*n));
*n=M244;
r244make(n,_sp,(C)->_last_type/*157*/);
C->_last_base_type=(T0*)n;
}
}
else{
r51fcp(C,((T0*)ms51_64185));
}
/*FI]*/
}
else if(r51a_keyword(C,((T0*)ms13_17628))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
/*[IF*/
if(((r51skip1(C,'\133'))&&(r51a_type(C)))&&(r51skip1(C,'\135'))){
{T247*n=malloc(sizeof(*n));
*n=M247;
r247make(n,_sp,(C)->_last_type/*157*/);
C->_last_base_type=(T0*)n;
}
}
else{
r51fcp(C,((T0*)ms51_90680));
}
/*FI]*/
}
else if(r51a_keyword(C,((T0*)ms51_7203))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
/*[IF*/
if(((r51skip1(C,'\133'))&&(r51a_type(C)))&&(r51skip1(C,'\135'))){
{T247*n=malloc(sizeof(*n));
*n=M247;
r247make(n,_sp,(C)->_last_type/*157*/);
C->_last_base_type=(T0*)n;
}
}
else{
r51fcp(C,((T0*)ms51_71295));
}
/*FI]*/
r51warning(_sp,((T0*)ms51_151262));
}
else if(r51a_keyword(C,((T0*)ms13_6510))){
{T248*n=malloc(sizeof(*n));
*n=M248;
r248make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms13_9936))){
{T250*n=malloc(sizeof(*n));
*n=M250;
r250make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms13_4818))){
{T251*n=malloc(sizeof(*n));
*n=M251;
r251make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms13_6748))){
{T252*n=malloc(sizeof(*n));
*n=M252;
r252make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms13_1256))){
{T253*n=malloc(sizeof(*n));
*n=M253;
r253make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms13_6881))){
{T254*n=malloc(sizeof(*n));
*n=M254;
r254make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms13_1208))){
{T255*n=malloc(sizeof(*n));
*n=M255;
r255make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms13_5046))){
{T256*n=malloc(sizeof(*n));
*n=M256;
r256make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
C->_last_base_type=(T0*)n;
}
}
else{
R=0;
}
/*FI]*/
return R;
}
void r51a_procedure_call(T51* C){
T0* _implicit_current=NULL;
T0* _sfn=NULL;
_sfn=r92to_simple_feature_name((T92*)(oBC51tmp_name));
{T177*n=malloc(sizeof(*n));
*n=M177;
/*[IRF3.3make*/((((T177*)(n)))->_start_position)=((((T131*)_sfn))->_start_position/*8*/);
/*]*/
_implicit_current=(T0*)n;
}
r51a_r10(C,1,_implicit_current,_sfn,r51a_actuals(C));
}
T0* r51pos(T2 a1,T2 a2){
T0* R=NULL;
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,a1,a2);
R=(T0*)n;
}
return R;
}
void r51show_nb(T2 a1,T0* a2){
/*[IF*/
if((a1)>(0)){
r33w_put_string(((T0*)ms12_3143));
r33w_put_integer(a1);
r33w_put_string(a2);
}
/*FI]*/
}
/*No:EIFFEL_PARSER.fz_error_stars*/
/*No:EIFFEL_PARSER.us_minus*/
T6 r51a_identifier(T51* C){
T6 R=0;
/*[IF*/
if((C)->_case_insensitive/*0*/){
R=r51a_identifier1(C);
}
else{
R=r51a_identifier2(C);
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.fz_else*/
T0* r51a_compound2(T51* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _remainder=NULL;
T0* _first_one=NULL;
T0* _instruction=NULL;
T0* _hc=NULL;
_hc=r51get_comments(C);
while (!(((C)->_cc/*24*/)!=('\73'))) {
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms12_41475);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\73');
}
while (!((!(r51a_instruction(C)))||((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)>(0)))) {
_instruction=(C)->_last_instruction/*133*/;
/*[IF*/
if(((C)->_cc/*24*/)==('\50')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_9410a);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
C->_ok=r51skip1(C,'\73');
while (!(((C)->_cc/*24*/)!=('\73'))) {
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms12_41475);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\73');
}
/*[IF*/
if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
_instruction=X144add_comment(_instruction,r51get_comments(C));
/*[IF*/
if((_first_one)==((void*)(NULL))){
_first_one=_instruction;
}
else{
/*[IF*/
if((_remainder)==((void*)(NULL))){
{T201*n=malloc(sizeof(*n));
*n=M201;
r201with_capacity(n,4);
_remainder=(T0*)n;
}
}
/*FI]*/
r201add_last(((T201*)_remainder),_instruction);
}
/*FI]*/
}
/*FI]*/
}
/*[IF*/
if(!(r51a_keyword(C,a2))){
/*[IRF3.6append*/{T0* b1=((T0*)ms51_12480);
r7append((T7*)(oBC37explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC37explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms51_33345);
r7append((T7*)(oBC37explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC37explanation),b1);
}/*]*/
r51fcp(C,((T0*)ms51_10120a));
}
/*FI]*/
/*[IF*/
if(((_hc)!=((void*)(NULL)))||((_first_one)!=((void*)(NULL)))){
{T200*n=malloc(sizeof(*n));
*n=M200;
r200make(n,_hc,_first_one,_remainder);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.fz_deferred*/
/*No:EIFFEL_PARSER.fz_like*/
T6 r51a_loop(T51* C){
T6 R=0;
T0* _al=NULL;
T0* _hc=NULL;
T0* _lb=NULL;
T0* _ue=NULL;
T0* _vc=NULL;
T0* _ic=NULL;
T0* _i=NULL;
T0* _e_loop=NULL;
T2 _c2=0;
T2 _l2=0;
T2 _c1=0;
T2 _l1=0;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_1784))){
R=1;
_l1=(C)->_start_line/*169*/;
_c1=(C)->_start_column/*165*/;
_i=r51a_compound1(C);
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_14427))){
_l2=(C)->_start_line/*169*/;
_c2=(C)->_start_column/*165*/;
_hc=r51get_comments(C);
_al=r51a_assertion(C);
/*[IF*/
if(((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))){
{T227*n=malloc(sizeof(*n));
*n=M227;
r227make(n,r51pos(_l2,_c2),_hc,_al);
_ic=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_9506))){
/*[IF*/
if((r51a_tag_mark(C))&&(r51a_expression(C))){
{T229*n=malloc(sizeof(*n));
*n=M229;
r229make(n,(C)->_last_tag_mark/*161*/,(C)->_last_expression/*97*/,r51get_comments(C));
_vc=(T0*)n;
}
}
else if(r51a_expression(C)){
{T230*n=malloc(sizeof(*n));
*n=M230;
r230make(n,(C)->_last_expression/*97*/,r51get_comments(C));
_vc=(T0*)n;
}
}
else{
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_85956);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_2855))){
/*[IF*/
if(r51a_expression(C)){
_ue=X89add_comment((C)->_last_expression/*97*/,r51get_comments(C));
}
else{
r51fcp(C,((T0*)ms51_78048));
_ue=(C)->_last_expression/*97*/;
}
/*FI]*/
}
else{
r51fcp(C,((T0*)ms51_83028));
_ue=(C)->_last_expression/*97*/;
}
/*FI]*/
/*[IF*/
if(((C)->_cc/*24*/)==('\73')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms12_41475);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\73');
}
/*FI]*/
/*[IF*/
if(!(r51a_keyword(C,((T0*)ms12_1808)))){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_79128);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
_lb=r51a_compound2(C,((T0*)ms51_14202),((T0*)ms12_951));
{T228*n=malloc(sizeof(*n));
*n=M228;
r228make(n,r51pos(_l1,_c1),_i,_ic,_vc,_ue,_lb);
_e_loop=(T0*)n;
}
C->_last_instruction=_e_loop;
}
/*FI]*/
return R;
}
T6 r51a_base_class_name(T51* C){
T6 R=0;
T6 _do_warning=0;
T2 _state=0;
/*[IF*/
if(r3is_letter((C)->_cc/*24*/)){
/*[IF*/
if((((unsigned)((C)->_cc/*24*/))>=((unsigned)('a')))){
_do_warning=1;
C->_cc=r3to_upper((C)->_cc/*24*/);
}
/*FI]*/
r92initialize((T92*)(oBC51tmp_name),(C)->_line/*16*/,(C)->_column/*12*/);
/*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
r7extend((T7*)(oBC92tmp_string),b1);
}/*]*/
while (!((_state)>(0))) {
r51next_char(C);
{int z1=(C)->_cc/*24*/;
if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)){
/*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
r7extend((T7*)(oBC92tmp_string),b1);
}/*]*/
}
else
if(((97<=z1)&&(z1<=122))){
_do_warning=1;
/*[IRF3.6extend*/{T3 b1=r3to_upper((C)->_cc/*24*/);
r7extend((T7*)(oBC92tmp_string),b1);
}/*]*/
}
else{_state=1;
}}
}
/*[IF*/
if(r92isa_keyword()){
_state=/*(IRF4.9count*/((T7*)(oBC92tmp_string))->_count/*4*//*)*/;
while (!((_state)==(0))) {
_state=(_state)-(1);
r51prev_char(C);
}
}
else{
R=1;
r51skip_comments(C);
/*[IF*/
if(_do_warning){
r51warning(r92start_position((T92*)(oBC51tmp_name)),((T0*)ms51_116415));
}
/*FI]*/
C->_last_class_name=r92to_class_name((T92*)(oBC51tmp_name));
}
/*FI]*/
}
/*FI]*/
return R;
}
T6 r51a_manifest_constant(T51* C){
T6 R=0;
/*[IF*/
if(r51a_boolean_constant(C)){
C->_last_manifest_constant=(C)->_last_boolean_constant/*81*/;
R=1;
}
else if(r51a_character_constant(C)){
C->_last_manifest_constant=(C)->_last_character_constant/*85*/;
R=1;
}
else if(r51a_manifest_string(C)){
C->_last_manifest_constant=(C)->_last_manifest_string/*145*/;
R=1;
}
else if(r51a_bit_constant(C)){
C->_last_manifest_constant=(C)->_last_bit_constant/*77*/;
R=1;
}
else if(r51a_real_constant(C)){
C->_last_manifest_constant=(C)->_last_real_constant/*153*/;
R=1;
}
else if(r51a_integer_constant(C)){
C->_last_manifest_constant=(C)->_last_integer_constant/*129*/;
R=1;
}
/*FI]*/
return R;
}
T6 r51a_identifier1(T51* C){
T6 R=0;
T2 _state=0;
/*[IF*/
if(r3is_letter((C)->_cc/*24*/)){
r92initialize((T92*)(oBC51tmp_name),(C)->_line/*16*/,(C)->_column/*12*/);
/*[IRF3.6extend*/{T3 b1=r3to_lower((C)->_cc/*24*/);
r7extend((T7*)(oBC92tmp_string),b1);
}/*]*/
while (!((_state)>(0))) {
r51next_char(C);
{int z1=(C)->_cc/*24*/;
if(((48<=z1)&&(z1<=57))||(95==z1)||((97<=z1)&&(z1<=122))){
/*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
r7extend((T7*)(oBC92tmp_string),b1);
}/*]*/
}
else
if(((65<=z1)&&(z1<=90))){
/*[IRF3.6extend*/{T3 b1=r3to_lower((C)->_cc/*24*/);
r7extend((T7*)(oBC92tmp_string),b1);
}/*]*/
}
else{_state=1;
}}
}
/*[IF*/
if(r92isa_keyword()){
_state=/*(IRF4.9count*/((T7*)(oBC92tmp_string))->_count/*4*//*)*/;
while (!((_state)==(0))) {
_state=(_state)-(1);
r51prev_char(C);
}
}
else{
R=1;
r51skip_comments(C);
}
/*FI]*/
}
/*FI]*/
return R;
}
void r51a_formal_arg_list(T51* C){
T2 _state=0;
T0* _list=NULL;
T0* _declaration=NULL;
T0* _name_list=NULL;
T0* _name=NULL;
T6 _started=0;
C->_arguments=NULL;
while (!((_state)>(5))) {
{int z1=_state;
if((0==z1)){
/*[IF*/
if(r51skip1(C,'\50')){
_started=1;
_state=1;
}
else{
_state=6;
}
/*FI]*/
}
else
if((1==z1)){
/*[IF*/
if(r51a_identifier(C)){
_name=r92to_argument_name1((T92*)(oBC51tmp_name));
_state=2;
}
else if(r51skip1(C,'\51')){
_state=6;
}
else{
_state=7;
}
/*FI]*/
}
else
if((2==z1)){
/*[IF*/
if(r51skip1(C,'\72')){
/*[IF*/
if((_name_list)!=((void*)(NULL))){
r175add_last(((T175*)_name_list),_name);
_name=NULL;
}
/*FI]*/
_state=4;
}
else{
C->_ok=r51skip1(C,'\54');
/*[IF*/
if((_name_list)==((void*)(NULL))){
_name_list=se_ma175(1,
_name);
}
else{
r175add_last(((T175*)_name_list),_name);
}
/*FI]*/
_name=NULL;
_state=3;
}
/*FI]*/
}
else
if((3==z1)){
/*[IF*/
if(r51a_identifier(C)){
_name=r92to_argument_name1((T92*)(oBC51tmp_name));
_state=2;
}
else if((((C)->_cc/*24*/)==('\54'))||(((C)->_cc/*24*/)==('\73'))){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_38712);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=(r51skip1(C,'\54'))||(r51skip1(C,'\73'));
}
else{
_state=7;
}
/*FI]*/
}
else
if((4==z1)){
/*[IF*/
if(r51a_type(C)){
/*[IF*/
if((_name_list)!=((void*)(NULL))){
{T295*n=malloc(sizeof(*n));
*n=M295;
r295make(n,_name_list,(C)->_last_type/*157*/);
_declaration=(T0*)n;
}
_name_list=NULL;
}
else{
{T298*n=malloc(sizeof(*n));
*n=M298;
r298make(n,_name,(C)->_last_type/*157*/);
_declaration=(T0*)n;
}
_name=NULL;
}
/*FI]*/
/*[IF*/
if((_list)==((void*)(NULL))){
_list=se_ma293(1,
_declaration);
}
else{
r293add_last(((T293*)_list),_declaration);
}
/*FI]*/
_declaration=NULL;
_state=5;
}
else{
_state=7;
}
/*FI]*/
}
else{/*[IF*/
if(r51skip1(C,'\51')){
_state=6;
}
else if(((C)->_cc/*24*/)==('\54')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_29280aa);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\54');
_state=1;
}
else{
C->_ok=r51skip1(C,'\73');
_state=1;
}
/*FI]*/
}}
}
/*[IF*/
if((_state)==(7)){
r51fcp(C,((T0*)ms51_39050));
}
else if(_started){
/*[IF*/
if((_list)==((void*)(NULL))){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_83028a);
r51warning(r51current_position(C1),b1);
}/*]*/
}
else{
{T171*n=malloc(sizeof(*n));
*n=M171;
r171make(n,_list);
C->_arguments=(T0*)n;
}
/*[IRF3.3set_arguments*/((((T182*)((T182*)(oBC51tmp_feature))))->_arguments)=((C)->_arguments/*49*/);
/*]*/
}
/*FI]*/
}
/*FI]*/
}
T6 r51a_check(T51* C){
T6 R=0;
T0* _al=NULL;
T0* _hc=NULL;
T0* _sp=NULL;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_2625))){
R=1;
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
_hc=r51get_comments(C);
_al=r51a_assertion(C);
/*[IF*/
if(((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))){
{T202*n=malloc(sizeof(*n));
*n=M202;
r202make(n,_sp,_hc,_al);
C->_last_instruction=(T0*)n;
}
}
else{
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_64448);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
/*[IF*/
if(!(r51a_keyword(C,((T0*)ms12_951)))){
r51fcp(C,((T0*)ms51_142100));
}
/*FI]*/
}
/*FI]*/
return R;
}
void r51to_frozen_feature_name(T51* C){
{T300*n=malloc(sizeof(*n));
*n=M300;
/*[IRF3.3make*/((((T300*)(n)))->_feature_name)=((C)->_last_feature_name/*105*/);
/*]*/
C->_last_feature_name=(T0*)n;
}
}
/*No:EIFFEL_PARSER.us_boolean*/
T6 r51a_binary(T51* C,T0* a1){
T6 R=0;
R=1;
/*[IF*/
if(r51skip2(C,'\74','\75')){
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms13_248),a1);
C->_last_binary=(T0*)n;
}
}
else if(r51skip2(C,'\76','\75')){
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms13_252),a1);
C->_last_binary=(T0*)n;
}
}
else if(r51skip2(C,'\57','\57')){
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms51_194),a1);
C->_last_binary=(T0*)n;
}
}
else if(r51skip2(C,'\134','\134')){
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms51_374),a1);
C->_last_binary=(T0*)n;
}
}
else if(r51skip1(C,'\53')){
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms13_44),a1);
C->_last_binary=(T0*)n;
}
}
else if(r51skip1(C,'\55')){
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms13_46),a1);
C->_last_binary=(T0*)n;
}
}
else if(r51skip1(C,'\52')){
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms13_43),a1);
C->_last_binary=(T0*)n;
}
}
else if(r51skip1(C,'\57')){
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms13_48),a1);
C->_last_binary=(T0*)n;
}
}
else if(r51skip1(C,'\76')){
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms13_63),a1);
C->_last_binary=(T0*)n;
}
}
else if(r51skip1(C,'\74')){
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms13_61),a1);
C->_last_binary=(T0*)n;
}
}
else if(r51skip1(C,'\136')){
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms51_95),a1);
C->_last_binary=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms13_1053a))){
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms13_1053a),a1);
C->_last_binary=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms13_9513))){
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms13_9513),a1);
C->_last_binary=(T0*)n;
}
}
else if(r51a_keyword(C,((T0*)ms13_939))){
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_1764))){
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms13_10800),a1);
C->_last_binary=(T0*)n;
}
}
else{
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms13_939),a1);
C->_last_binary=(T0*)n;
}
}
/*FI]*/
}
else if(r51a_keyword(C,((T0*)ms13_456))){
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_1740))){
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms13_8316),a1);
C->_last_binary=(T0*)n;
}
}
else{
{T121*n=malloc(sizeof(*n));
*n=M121;
r121make(n,((T0*)ms13_456),a1);
C->_last_binary=(T0*)n;
}
}
/*FI]*/
}
else{
C->_last_binary=NULL;
R=0;
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.fz_once*/
/*No:EIFFEL_PARSER.fz_if*/
/*No:EIFFEL_PARSER.column*/
void r51a_new_export_list(T51* C){
T2 _state=0;
T0* _new_export_item=NULL;
T0* _items=NULL;
T0* _clients=NULL;
T0* _sp=NULL;
T0* _export_list=NULL;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_7614))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
while (!((_state)>(3))) {
{int z1=_state;
if((0==z1)){
/*[IF*/
if(((C)->_cc/*24*/)==('\173')){
_clients=r51a_clients(C);
_state=1;
}
else if(((C)->_cc/*24*/)==('\73')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms12_41475);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\73');
}
else{
/*[IF*/
if((_items)!=((void*)(NULL))){
{T302*n=malloc(sizeof(*n));
*n=M302;
r302make(n,_sp,_items);
_export_list=(T0*)n;
}
/*[IRF3.3set_export*/((((T60*)((T60*)((C)->_last_parent/*149*/))))->_export_list)=(_export_list);
/*]*/
}
/*FI]*/
_state=4;
}
/*FI]*/
}
else
if((1==z1)){
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_957a))){
{T301*n=malloc(sizeof(*n));
*n=M301;
r301make_all(n,_clients);
_new_export_item=(T0*)n;
}
/*[IF*/
if((_items)==((void*)(NULL))){
_items=se_ma303(1,
_new_export_item);
}
else{
r303add_last(((T303*)_items),_new_export_item);
}
/*FI]*/
_state=2;
}
else{
/*[IF*/
if(r51a_feature_name_list(C)){
{T301*n=malloc(sizeof(*n));
*n=M301;
r301make(n,_clients,(C)->_last_feature_name_list/*109*/);
_new_export_item=(T0*)n;
}
/*[IF*/
if((_items)==((void*)(NULL))){
_items=se_ma303(1,
_new_export_item);
}
else{
r303add_last(((T303*)_items),_new_export_item);
}
/*FI]*/
_state=2;
}
else{
_state=3;
}
/*FI]*/
}
/*FI]*/
}
else
if((2==z1)){
/*[IF*/
if(r51skip1(C,'\73')){
_state=0;
}
else if(((C)->_cc/*24*/)==('\173')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_9410a);
r51warning(r51current_position(C1),b1);
}/*]*/
_state=0;
}
else{
/*[IF*/
if((_items)!=((void*)(NULL))){
{T302*n=malloc(sizeof(*n));
*n=M302;
r302make(n,_sp,_items);
_export_list=(T0*)n;
}
/*[IRF3.3set_export*/((((T60*)((T60*)((C)->_last_parent/*149*/))))->_export_list)=(_export_list);
/*]*/
}
/*FI]*/
_state=4;
}
/*FI]*/
}
else{r51fcp(C,((T0*)ms51_20247));
_state=4;
}}
}
}
/*FI]*/
}
void r51a_creation_clause(T51* C,T0* a1){
T0* _creation_clause=NULL;
T0* _comments=NULL;
T0* _clients=NULL;
_clients=r51a_clients(C);
_comments=r51get_comments(C);
/*[IF*/
if(r51a_feature_name_list(C)){
}
/*FI]*/
{T56*n=malloc(sizeof(*n));
*n=M56;
r56make(n,a1,_clients,_comments,(C)->_last_feature_name_list/*109*/);
_creation_clause=(T0*)n;
}
r41add_creation_clause((T41*)((C)->_last_base_class/*65*/),_creation_clause);
}
/*No:EIFFEL_PARSER.show_nb_errors*/
/*No:EIFFEL_PARSER.last_integer_constant*/
/*No:EIFFEL_PARSER.last_boolean_constant*/
T6 r51a_integer_constant(T51* C){
T6 R=0;
T2 _c=0;
T2 _l=0;
/*[IF*/
if(r51skip1(C,'\53')){
_l=(C)->_start_line/*169*/;
_c=(C)->_start_column/*165*/;
/*[IF*/
if(r51a_integer(C)){
r39set_line_column((T39*)(((T158*)((C)->_last_integer_constant/*129*/))->_start_position/*4*/),_l,_c);
R=1;
}
else{
r51fcp(C,((T0*)ms12_45846));
}
/*FI]*/
}
else if(r51skip1(C,'\55')){
_l=(C)->_start_line/*169*/;
_c=(C)->_start_column/*165*/;
/*[IF*/
if(r51a_integer(C)){
r39set_line_column((T39*)(((T158*)((C)->_last_integer_constant/*129*/))->_start_position/*4*/),_l,_c);
r158unary_minus((T158*)((C)->_last_integer_constant/*129*/));
R=1;
}
else{
r51fcp(C,((T0*)ms12_45846));
}
/*FI]*/
}
else{
R=r51a_integer(C);
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.fz_do*/
/*No:EIFFEL_PARSER.fz_as*/
/*No:EIFFEL_PARSER.us_ge*/
/*No:EIFFEL_PARSER.go_back*/
T6 r51a_prefix(T51* C){
T6 R=0;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_7614a))){
R=1;
/*[IF*/
if(((C)->_cc/*24*/)==('\42')){
r51next_char(C);
}
else{
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_89232);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
/*[IF*/
if(r51a_unary(C)){
}
else if(r51a_free_operator(C)){
C->_last_prefix=r92to_prefix_name((T92*)(oBC51tmp_name));
}
else{
r51fcp(C,((T0*)ms51_56910));
}
/*FI]*/
/*[IF*/
if(!(r51skip1(C,'\42'))){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_38352);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.last_feature_declaration*/
/*No:EIFFEL_PARSER.us_none*/
/*No:EIFFEL_PARSER.start_column*/
/*No:EIFFEL_PARSER.us_string*/
/*No:EIFFEL_PARSER.fz_se*/
/*No:EIFFEL_PARSER.fz_true*/
/*No:EIFFEL_PARSER.us_le*/
/*No:EIFFEL_PARSER.fz_c_inlinewithoutcurrent*/
/*No:EIFFEL_PARSER.fz_c_withoutcurrent*/
void r51a_local_var_list(T51* C){
T2 _state=0;
T2 _rank=0;
T0* _list=NULL;
T0* _declaration=NULL;
T0* _name_list=NULL;
T0* _name=NULL;
while (!((_state)>(4))) {
{int z1=_state;
if((0==z1)){
/*[IF*/
if(r51a_identifier(C)){
_name=r92to_local_name1((T92*)(oBC51tmp_name));
_state=1;
/*[IF*/
if(((C)->_arguments/*49*/)!=((void*)(NULL))){
_rank=r171rank_of((T171*)((C)->_arguments/*49*/),(((T167*)_name))->_to_string/*8*/);
/*[IF*/
if((_rank)>(0)){
r37add_position((((T167*)_name))->_start_position/*4*/);
r37add_position(((T174*)(/*(IRF4.6name*/r175item(((T175*)(((T171*)((C)->_arguments/*49*/))->_flat_list/*8*/)),_rank)/*)*/))->_start_position/*4*/);
r37error((T37*)(oBC11eh),((T0*)ms51_112815));
}
/*FI]*/
}
/*FI]*/
}
else if((((C)->_cc/*24*/)==('\54'))||(((C)->_cc/*24*/)==('\73'))){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_38712);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=(r51skip1(C,'\54'))||(r51skip1(C,'\73'));
}
else{
_state=5;
}
/*FI]*/
}
else
if((1==z1)){
/*[IF*/
if(r51skip1(C,'\72')){
/*[IF*/
if((_name_list)!=((void*)(NULL))){
r169add_last(((T169*)_name_list),_name);
_name=NULL;
}
/*FI]*/
_state=3;
}
else{
/*[IF*/
if(((C)->_cc/*24*/)==('\73')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_29280);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\73');
}
else{
C->_ok=r51skip1(C,'\54');
}
/*FI]*/
/*[IF*/
if((_name_list)==((void*)(NULL))){
_name_list=se_ma169(1,
_name);
}
else{
r169add_last(((T169*)_name_list),_name);
}
/*FI]*/
_name=NULL;
_state=2;
}
/*FI]*/
}
else
if((2==z1)){
/*[IF*/
if(r51a_identifier(C)){
_name=r92to_local_name1((T92*)(oBC51tmp_name));
_state=1;
/*[IF*/
if(((C)->_arguments/*49*/)!=((void*)(NULL))){
_rank=r171rank_of((T171*)((C)->_arguments/*49*/),(((T167*)_name))->_to_string/*8*/);
/*[IF*/
if((_rank)>(0)){
r37add_position((((T167*)_name))->_start_position/*4*/);
r37add_position(((T174*)(/*(IRF4.6name*/r175item(((T175*)(((T171*)((C)->_arguments/*49*/))->_flat_list/*8*/)),_rank)/*)*/))->_start_position/*4*/);
r37error((T37*)(oBC11eh),((T0*)ms51_112815a));
}
/*FI]*/
}
/*FI]*/
}
else if((((C)->_cc/*24*/)==('\54'))||(((C)->_cc/*24*/)==('\73'))){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_38712);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=(r51skip1(C,'\54'))||(r51skip1(C,'\73'));
}
else{
_state=6;
}
/*FI]*/
}
else
if((3==z1)){
/*[IF*/
if(r51a_type(C)){
/*[IF*/
if((_name_list)!=((void*)(NULL))){
{T295*n=malloc(sizeof(*n));
*n=M295;
r295make(n,_name_list,(C)->_last_type/*157*/);
_declaration=(T0*)n;
}
_name_list=NULL;
}
else{
{T298*n=malloc(sizeof(*n));
*n=M298;
r298make(n,_name,(C)->_last_type/*157*/);
_declaration=(T0*)n;
}
_name=NULL;
}
/*FI]*/
/*[IF*/
if((_list)==((void*)(NULL))){
_list=se_ma293(1,
_declaration);
}
else{
r293add_last(((T293*)_list),_declaration);
}
/*FI]*/
_state=4;
}
else{
_state=6;
}
/*FI]*/
}
else{/*[IF*/
if(((C)->_cc/*24*/)==('\54')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_29280a);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\54');
_state=0;
}
else{
C->_ok=r51skip1(C,'\73');
_state=0;
}
/*FI]*/
}}
}
/*[IF*/
if((_state)==(6)){
r51fcp(C,((T0*)ms51_36528));
}
else if((_list)!=((void*)(NULL))){
{T162*n=malloc(sizeof(*n));
*n=M162;
/*[IRF3.6make*/{T162* C1=n;
T0* b1=_list;
r162declaration_list_make(C1,b1);
}/*]*/
C->_local_vars=(T0*)n;
}
/*[IRF3.3set_local_vars*/((((T182*)((T182*)(oBC51tmp_feature))))->_local_vars)=((C)->_local_vars/*53*/);
/*]*/
}
/*FI]*/
}
/*No:EIFFEL_PARSER.fz_is*/
T6 r51a_precursor(T51* C,T6 a1){
T6 R=0;
T0* _args=NULL;
T0* _parent=NULL;
T0* _sp=NULL;
/*[IF*/
if(r51skip1(C,'\173')){
R=1;
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
/*[IF*/
if(r51skip1(C,'\173')){
r51warning(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),((T0*)ms51_104490a));
}
/*FI]*/
/*[IF*/
if(r51a_base_class_name(C)){
_parent=(C)->_last_class_name/*89*/;
}
/*FI]*/
/*[IF*/
if(!(r51skip1(C,'\175'))){
r51fcp(C,((T0*)ms51_202947));
}
/*FI]*/
/*[IF*/
if(r51skip1(C,'\175')){
r51warning(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),((T0*)ms51_104490));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r51a_keyword(C,((T0*)ms13_13968))){
R=1;
/*[IF*/
if((_sp)==((void*)(NULL))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
}
/*FI]*/
_args=r51a_actuals(C);
}
else if((_sp)!=((void*)(NULL))){
r51fcp(C,((T0*)ms51_63936));
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if(r51skip1unless2(C,'\56','\56')){
{T159*n=malloc(sizeof(*n));
*n=M159;
r159make(n,_sp,_parent,_args);
C->_last_expression=(T0*)n;
}
r51a_after_a_dot(C,a1,(C)->_last_expression/*97*/);
}
else if(a1){
{T161*n=malloc(sizeof(*n));
*n=M161;
r161make(n,_sp,_parent,_args);
C->_last_instruction=(T0*)n;
}
}
else{
{T159*n=malloc(sizeof(*n));
*n=M159;
r159make(n,_sp,_parent,_args);
C->_last_expression=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.inside_once_function*/
/*No:EIFFEL_PARSER.us_neq*/
/*No:EIFFEL_PARSER.us_eq*/
T6 r51a_character_constant(T51* C){
T6 R=0;
T3 _value=0;
T2 _printing_mode=0;
T2 _state=0;
T0* _sp=NULL;
/*[IF*/
if(((C)->_cc/*24*/)==('\47')){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_line/*16*/,(C)->_column/*12*/);
_sp=(T0*)n;
}
R=1;
while (!((_state)>(2))) {
r51next_char(C);
{int z1=_state;
if((0==z1)){
{int z2=(C)->_cc/*24*/;
if((37==z2)){
_state=1;
}
else
if((39==z2)){
r51fcp(C,((T0*)ms51_33741));
_state=2;
}
else{_value=(C)->_cc/*24*/;
_printing_mode=0;
_state=2;
}}
}
else
if((1==z1)){
_printing_mode=1;
_state=2;
{int z2=(C)->_cc/*24*/;
if((65==z2)){
_value='\100';
}
else
if((66==z2)){
_value='\10';
}
else
if((67==z2)){
_value='\136';
}
else
if((68==z2)){
_value='\44';
}
else
if((70==z2)){
_value='\14';
}
else
if((72==z2)){
_value='\134';
}
else
if((76==z2)){
_value='\176';
}
else
if((78==z2)){
_value='\n';
}
else
if((81==z2)){
_value='\140';
}
else
if((82==z2)){
_value='\15';
}
else
if((83==z2)){
_value='\43';
}
else
if((84==z2)){
_value='\11';
}
else
if((85==z2)){
_value='\0';
}
else
if((86==z2)){
_value='\174';
}
else
if((37==z2)){
_value='\45';
}
else
if((39==z2)){
_value='\47';
}
else
if((34==z2)){
_value='\42';
}
else
if((40==z2)){
_value='\133';
}
else
if((41==z2)){
_value='\135';
}
else
if((60==z2)){
_value='\173';
}
else
if((62==z2)){
_value='\175';
}
else
if((47==z2)){
r51a_ascii_code(C);
_value=((T3)((C)->_last_ascii_code/*61*/));
_printing_mode=2;
}
else{r51fcp(C,((T0*)ms51_45084));
}}
}
else{_state=3;
{int z2=(C)->_cc/*24*/;
if((39==z2)){
}
else{r51fcp(C,((T0*)ms51_33741));
}}
r51next_char(C);
r51skip_comments(C);
}}
}
{T153*n=malloc(sizeof(*n));
*n=M153;
r153make(n,_sp,_value,_printing_mode);
C->_last_character_constant=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.fatal_error*/
T6 r51a_free_operator(T51* C){
T6 R=0;
/*[IF*/
if((((((C)->_cc/*24*/)==('\100'))||(((C)->_cc/*24*/)==('\43')))||(((C)->_cc/*24*/)==('\174')))||(((C)->_cc/*24*/)==('\46'))){
R=1;
r92initialize((T92*)(oBC51tmp_name),(C)->_line/*16*/,(C)->_column/*12*/);
/*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
r7extend((T7*)(oBC92tmp_string),b1);
}/*]*/
r51next_char(C);
while (!((((((C)->_cc/*24*/)==('\n'))||(((C)->_cc/*24*/)==('\40')))||(((C)->_cc/*24*/)==('\11')))||(((C)->_cc/*24*/)==('\42')))) {
/*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
r7extend((T7*)(oBC92tmp_string),b1);
}/*]*/
r51next_char(C);
}
r51skip_comments(C);
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.em10*/
/*No:EIFFEL_PARSER.us_gt*/
/*No:EIFFEL_PARSER.em11*/
/*No:EIFFEL_PARSER.em20*/
/*No:EIFFEL_PARSER.em12*/
/*No:EIFFEL_PARSER.em13*/
/*No:EIFFEL_PARSER.fz_c_withcurrent*/
void r51a_then_part_list(T51* C,T0* a1){
/*[IF*/
if(!(r51a_then_part(C,a1))){
r51fcp(C,((T0*)ms51_28035));
}
/*FI]*/
while (!(!(r51a_keyword(C,((T0*)ms12_6942))))) {
/*[IF*/
if(!(r51a_then_part(C,a1))){
r51fcp(C,((T0*)ms51_37875));
}
/*FI]*/
}
}
void r51warning(T0* a1,T0* a2){
r37add_position(a1);
r37warning((T37*)(oBC11eh),a2);
}
/*No:EIFFEL_PARSER.em15*/
/*No:EIFFEL_PARSER.em16*/
/*No:EIFFEL_PARSER.us_lt*/
T6 r51a_identifier2(T51* C){
T6 R=0;
T6 _do_warning=0;
T2 _state=0;
/*[IF*/
if(r3is_letter((C)->_cc/*24*/)){
r92initialize((T92*)(oBC51tmp_name),(C)->_line/*16*/,(C)->_column/*12*/);
/*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
r7extend((T7*)(oBC92tmp_string),b1);
}/*]*/
while (!((_state)>(0))) {
r51next_char(C);
{int z1=(C)->_cc/*24*/;
if(((48<=z1)&&(z1<=57))||(95==z1)||((97<=z1)&&(z1<=122))){
/*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
r7extend((T7*)(oBC92tmp_string),b1);
}/*]*/
}
else
if(((65<=z1)&&(z1<=90))){
_do_warning=1;
/*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
r7extend((T7*)(oBC92tmp_string),b1);
}/*]*/
}
else{_state=1;
}}
}
/*[IF*/
if(r92isa_keyword()){
_state=/*(IRF4.9count*/((T7*)(oBC92tmp_string))->_count/*4*//*)*/;
while (!((_state)==(0))) {
_state=(_state)-(1);
r51prev_char(C);
}
}
else{
R=1;
r51skip_comments(C);
/*[IF*/
if(_do_warning){
r51warning(r92start_position((T92*)(oBC51tmp_name)),((T0*)ms51_116325));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.current_line*/
/*No:EIFFEL_PARSER.em17*/
/*No:EIFFEL_PARSER.fz_obsolete*/
/*No:EIFFEL_PARSER.us_or*/
/*No:EIFFEL_PARSER.em18*/
/*No:EIFFEL_PARSER.us_bit*/
/*No:EIFFEL_PARSER.em19*/
void r51error(T0* a1,T0* a2){
r37add_position(a1);
r37error((T37*)(oBC11eh),a2);
}
/*No:EIFFEL_PARSER.fz_expanded*/
/*No:EIFFEL_PARSER.fz_infix*/
/*No:EIFFEL_PARSER.last_base_type*/
/*No:EIFFEL_PARSER.current_class_name*/
/*No:EIFFEL_PARSER.last_real_constant*/
/*No:EIFFEL_PARSER.last_bit_constant*/
T0* r51to_call(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
/*[IF*/
if((a2)==((void*)(NULL))){
R=a1;
}
else if((a3)==((void*)(NULL))){
{T133*n=malloc(sizeof(*n));
*n=M133;
r133make(n,a1,a2);
R=(T0*)n;
}
}
else if((r132count(((T132*)a3)))==(1)){
{T135*n=malloc(sizeof(*n));
*n=M135;
r135make(n,a1,a2,a3);
R=(T0*)n;
}
}
else{
{T136*n=malloc(sizeof(*n));
*n=M136;
r136make(n,a1,a2,a3);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.nb_warnings*/
/*No:EIFFEL_PARSER.fz_redefine*/
T0*oBC51tmp_feature=NULL;
/*No:EIFFEL_PARSER.fz_retry*/
/*No:EIFFEL_PARSER.us_xor*/
T6 r51a_e0(T51* C){
T6 R=0;
R=r51a_e1(C);
r51a_r1(C,(C)->_last_expression/*97*/);
return R;
}
T0* r51get_comments(T51* C){
T0* R=NULL;
R=(C)->_last_comments/*25*/;
C->_last_comments=NULL;
return R;
}
T6 r51a_e1(T51* C){
T6 R=0;
R=r51a_e2(C);
r51a_r2(C,(C)->_last_expression/*97*/);
return R;
}
/*No:EIFFEL_PARSER.us_not*/
T6 r51a_e2(T51* C){
T6 R=0;
R=r51a_e3(C);
r51a_r3(C,(C)->_last_expression/*97*/);
return R;
}
T6 r51a_then_part(T51* C,T0* a1){
T6 R=0;
T0* _expression=NULL;
/*[IF*/
if(r51a_expression(C)){
R=1;
_expression=X89add_comment((C)->_last_expression/*97*/,r51get_comments(C));
/*[IF*/
if(!(r51a_keyword(C,((T0*)ms12_1764)))){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_14027);
r51warning(r51current_position(C1),b1);
}/*]*/
}
/*FI]*/
r206add_if_then(((T206*)a1),_expression,r51a_compound1(C));
}
/*FI]*/
return R;
}
T6 r51a_e3(T51* C){
T6 R=0;
R=r51a_e4(C);
r51a_r4(C,(C)->_last_expression/*97*/);
return R;
}
/*No:EIFFEL_PARSER.us_array*/
T6 r51a_e4(T51* C){
T6 R=0;
R=r51a_e5(C);
r51a_r5(C,(C)->_last_expression/*97*/);
return R;
}
T6 r51a_e5(T51* C){
T6 R=0;
R=r51a_e6(C);
r51a_r6(C,(C)->_last_expression/*97*/);
return R;
}
T6 r51a_e6(T51* C){
T6 R=0;
R=r51a_e7(C);
r51a_r7(C,(C)->_last_expression/*97*/);
return R;
}
void r51go_back_at(T51* C,T2 a1,T2 a2){
C->_line=a1;
C->_column=a2;
C->_current_line=r52item((C)->_line/*16*/);
/*[IF*/
if(((C)->_column/*12*/)==((((T7*)((C)->_current_line/*20*/))->_count/*4*/)+(1))){
C->_cc='\n';
}
else if(((C)->_column/*12*/)==(0)){
C->_cc='\0';
}
else{
C->_cc=/*(IRF4.6item*/(((T7*)((C)->_current_line/*20*/))->_storage/*0*/)[((C)->_column/*12*/)-(1)]/*)*/;
}
/*FI]*/
}
T6 r51a_e7(T51* C){
T6 R=0;
R=r51a_e8(C);
r51a_r8(C,(C)->_last_expression/*97*/);
return R;
}
/*No:EIFFEL_PARSER.last_manifest_string*/
T6 r51a_e8(T51* C){
T6 R=0;
T0* _sp=NULL;
T0* _prefix_freeop=NULL;
T0* _op=NULL;
T0* _prefix_moins=NULL;
T0* _prefix_plus=NULL;
T0* _prefix_not=NULL;
/*[IF*/
if(r51a_keyword(C,((T0*)ms13_1029))){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
/*[IF*/
if(r51a_e8(C)){
{T128*n=malloc(sizeof(*n));
*n=M128;
r128make(n,_sp,(C)->_last_expression/*97*/);
_prefix_not=(T0*)n;
}
C->_last_expression=_prefix_not;
R=1;
}
else{
r51err_exp(_sp,((T0*)ms13_1029));
}
/*FI]*/
}
else if(r51skip1(C,'\53')){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
/*[IF*/
if(r51a_e8(C)){
{T127*n=malloc(sizeof(*n));
*n=M127;
r127make(n,_sp,(C)->_last_expression/*97*/);
_prefix_plus=(T0*)n;
}
C->_last_expression=_prefix_plus;
R=1;
}
else{
r51err_exp(_sp,((T0*)ms51_7660));
}
/*FI]*/
}
else if(r51skip1(C,'\55')){
{T39*n=malloc(sizeof(*n));
*n=M39;
r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
_sp=(T0*)n;
}
/*[IF*/
if(r51a_e8(C)){
{T126*n=malloc(sizeof(*n));
*n=M126;
r126make(n,_sp,(C)->_last_expression/*97*/);
_prefix_moins=(T0*)n;
}
C->_last_expression=_prefix_moins;
R=1;
}
else{
r51err_exp(_sp,((T0*)ms51_7680));
}
/*FI]*/
}
else if(r51a_free_operator(C)){
_op=r92to_prefix_name((T92*)(oBC51tmp_name));
/*[IF*/
if(r51a_e8(C)){
{T122*n=malloc(sizeof(*n));
*n=M122;
r122make(n,(C)->_last_expression/*97*/,_op);
_prefix_freeop=(T0*)n;
}
C->_last_expression=_prefix_freeop;
R=1;
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms51_37044);
r7append((T7*)(oBC37explanation),b1);
}/*]*/
r51err_exp((((T125*)_op))->_start_position/*8*/,(((T125*)_op))->_to_string/*4*/);
}
/*FI]*/
}
else{
R=r51a_e9(C);
}
/*FI]*/
return R;
}
T6 r51a_e9(T51* C){
T6 R=0;
T0* _e_old=NULL;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_975))){
/*[IF*/
if(!((C)->_in_ensure/*41*/)){
r51error(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),((T0*)ms51_146727));
}
/*FI]*/
/*[IF*/
if(r51a_e10(C)){
{T129*n=malloc(sizeof(*n));
*n=M129;
/*[IRF3.3make*/((((T129*)(n)))->_expression)=((C)->_last_expression/*97*/);
/*]*/
_e_old=(T0*)n;
}
C->_last_expression=_e_old;
R=1;
}
else{
r51fcp(C,((T0*)ms51_64096));
}
/*FI]*/
}
else{
R=r51a_e10(C);
}
/*FI]*/
return R;
}
T6 r51a_when_part(T51* C,T0* a1){
T6 R=0;
T0* _constant=NULL;
T0* _e_when=NULL;
T2 _state=0;
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_1776))){
R=1;
{T217*n=malloc(sizeof(*n));
*n=M217;
r217make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),r51get_comments(C));
_e_when=(T0*)n;
}
while (!((_state)>(3))) {
{int z1=_state;
if((0==z1)){
/*[IF*/
if(r51a_constant(C)){
_constant=(C)->_last_expression/*97*/;
_state=1;
}
else if(r51a_keyword(C,((T0*)ms12_1764))){
/*[IF*/
if((_constant)!=((void*)(NULL))){
r217add_value(((T217*)_e_when),_constant);
}
/*FI]*/
/*[IRF3.3set_compound*/((((T217*)(((T217*)_e_when))))->_compound)=(r51a_compound1(C));
/*]*/
r216add_when(((T216*)a1),_e_when);
_state=4;
}
else if(((C)->_cc/*24*/)==('\54')){
/*[IRF3.6wcp*/{T51* C1=C;
T0* b1=((T0*)ms51_48195);
r51warning(r51current_position(C1),b1);
}/*]*/
C->_ok=r51skip1(C,'\54');
}
else{
r51fcp(C,((T0*)ms51_22423));
_state=4;
}
/*FI]*/
}
else
if((1==z1)){
/*[IF*/
if(r51a_keyword(C,((T0*)ms12_1764))){
/*[IF*/
if((_constant)!=((void*)(NULL))){
r217add_value(((T217*)_e_when),_constant);
}
/*FI]*/
/*[IRF3.3set_compound*/((((T217*)(((T217*)_e_when))))->_compound)=(r51a_compound1(C));
/*]*/
r216add_when(((T216*)a1),_e_when);
_state=4;
}
else if(r51skip2(C,'\56','\56')){
_state=2;
}
else if(r51skip1(C,'\54')){
r217add_value(((T217*)_e_when),_constant);
_constant=NULL;
_state=0;
}
else{
r51fcp(C,((T0*)ms51_22423));
_state=4;
}
/*FI]*/
}
else
if((2==z1)){
/*[IF*/
if(r51a_constant(C)){
r217add_slice(((T217*)_e_when),_constant,(C)->_last_expression/*97*/);
_constant=NULL;
_state=3;
}
else{
r51fcp(C,((T0*)ms51_22423));
_state=4;
}
/*FI]*/
}
else{/*[IF*/
if(r51skip1(C,'\54')){
_state=0;
}
else if(r51a_keyword(C,((T0*)ms12_1764))){
/*[IRF3.3set_compound*/((((T217*)(((T217*)_e_when))))->_compound)=(r51a_compound1(C));
/*]*/
r216add_when(((T216*)a1),_e_when);
_state=4;
}
else if(r51a_constant(C)){
_constant=(C)->_last_expression/*97*/;
r51warning(r92start_position((T92*)(oBC51tmp_name)),((T0*)ms51_9410));
_state=1;
}
else{
r51fcp(C,((T0*)ms51_22423));
_state=4;
}
/*FI]*/
}}
}
}
/*FI]*/
return R;
}
T6 r51a_argument(T51* C){
T6 R=0;
T2 _rank=0;
/*[IF*/
if(((C)->_arguments/*49*/)!=((void*)(NULL))){
_rank=r171rank_of((T171*)((C)->_arguments/*49*/),r92to_string((T92*)(oBC51tmp_name)));
/*[IF*/
if((_rank)>(0)){
C->_last_expression=r92to_argument_name2((T92*)(oBC51tmp_name),(C)->_arguments/*49*/,_rank);
R=1;
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:EIFFEL_PARSER.us_character*/
/*No:EIFFEL_PARSER.end_of_text*/